这是我使用 stat() 获取文件大小的函数:
off_t fsize(const char *filename) {
struct stat st;
if (stat(filename, &st) == 0)
return st.st_size;
fprintf(stderr, "Cannot determine size of %s: %s\n",
filename, strerror(errno));
return -1;
}
我可以通过以下方式获得文件大小:
size = fsize ("byte.bin");
但是当我需要从本地目录的较低目录中获取文件时,比如说“deps/src”目录,它会过早地停止在我身上,并且没有我预期的错误消息:
size = fsize ("deps/src/byte.bin");
我编写了一个使用该函数的小程序,将 byte.bin 文件复制到“deps/byte.bin”并使用“deps/byte.bin”调用我的 fsize 函数并得到错误“无法确定 byte.bin 的大小” : 没有相应的文件和目录”
如果我使用像“/something/deps/byte.bin”这样的绝对路径,它就可以工作。
我做错了什么以及如何显示我为相对路径执行此操作?