【发布时间】:2010-12-19 15:20:00
【问题描述】:
我使用lstat 获取文件的特征,但它似乎不起作用,它返回-1 和错误-没有这样的文件或目录-。
我在 shell 中尝试路径,输入:
:~$ ls /home/mypc/Desktop/file.c
/home/mypc/Desktop/file.c
所以这条路径显然适用于ls,但不适用于lstat!这很奇怪。
这是我打电话给lstat的那一行:
int i=lstat(path, &buff );
path 是 char[],buff 是 struct stat 对象。
如果您有任何想法,请...
【问题讨论】:
-
您的
path可能是错误的。让我们看看你是如何设置它的。 -
printf("%s\n",path) ;在统计之前查看path的设置。 -
您还可以使用
strace、ktrace、ktruss或truss(以您的平台上可用的为准)查看究竟发生了什么。 -
我是用 fgets 做的,没错。问题是我不知道一个完美的方法来把我从 fgets 得到的路径放在一个 char foo[] 中,然后放在 lstat 中。即使使用 getcwd 我也尝试过,但它不起作用。有人可以用 getcwd 写一个例子,路径由 fgets 和 lstat 给出吗?谢谢