[英]Segmentation fault using ctime
我正在進行stat()調用,該方法返回一個結構,該結構包含我要提取的信息。 到目前為止,在獲取所需的訪問時間,修改文件的時間以及最后更改文件之前,我已經取得了成功。
我想使用ctime來獲取它,然后使用printf來打印出來。
printf("File: %s",argv[1]);
printf("\nSize: %d",result.st_size);
printf(" Blocks: %d",result.st_blocks);
printf(" IO Block: %d",result.st_blksize);
printf("\nDevice: 0x%x",result.st_dev);
printf(" Inode: %d",result.st_ino);
printf(" Links: %d",result.st_nlink);
// printf("\nAccess: %s",ctime(result.st_atime));
該代碼運行良好,並提供以下輸出:
File: /etc/passwd
Size: 2250043 Blocks: 4416 IO Block: 4096
Device: 0x6804 Inode: 9738432 Links: 1
如果取消注釋要獲取訪問時間的最后一行,則會得到以下輸出:
File: /etc/passwd
Size: 2250043 Blocks: 4416 IO Block: 4096
Segmentation fault
我怎樣才能解決這個問題? 另外, 在打印設備,Inode和鏈接之前 ,為什么會出現分段錯誤? 它不應該被打印然后生成分段錯誤嗎?
我幾乎沒有C的經驗。我在以前的課程中學習過Assembly,但是非常簡短。 我試圖閱讀time.h的API,但是我真的無法找到解決方案。
我非常感謝您能獲得的任何幫助或提示!
謝謝Z
函數ctime
期望為const time_t *
。 您可能想要:
printf("\nAccess: %s",ctime(&result.st_atime));
^
請用
ctime(&result.st_atime)
別忘了
#include <time.h>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.