我正在做一個作業任務,我遇到了一個小障礙。統計系統調用報告「沒有這樣的文件或目錄」
我試圖從標準輸入讀取一個文件名,然後stat
的文件,以獲得大小(根據任務的要求):
#define BUFFSIZE 4096
int
main(void) {
int n;
char buffer[BUFFSIZE];
struct stat buf;
while ((n = read(STDIN_FILENO, buffer, BUFFSIZE)) > 0) {
stat(buffer, &buf);
perror("stat");
}
}
下面是輸出跑的時候(我輸入的文件名file
):
file
stat: No such file or directory
但是,如果我嘗試這樣:
#define BUFFSIZE 4096
int
main(void) {
int n;
char buffer[BUFFSIZE] = "file";
struct stat buf;
stat(buffer, &buf);
perror("stat");
}
我得到:
stat: Success
名爲file
的文件是在我運行從程序的目錄。
爲什麼字符串「file」中的讀取和將數組初始化爲字符串「file」之間存在差異?
感謝您的建議,但該任務要求我使用'read'和'stat'。 – amillerrhodes 2012-02-01 23:39:03