我正在做一个作业任务,我遇到了一个小障碍。统计系统调用报告“没有这样的文件或目录”
我试图从标准输入读取一个文件名,然后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