【发布时间】:2016-07-04 08:15:23
【问题描述】:
我在运行 C 程序时遇到错误分段错误。这是我获取file/directory的所有者和组的代码示例:
struct stat sb;
char outstr[200];
stat(file_or_dir_name, &sb);
struct passwd *pw = getpwuid(sb.st_uid);
struct group *gr = getgrgid(sb.st_gid);
printf("%s %s\n", pw->pw_name, gr->gr_name);
代码多次在目录中运行,但随后在一个文件中出现pw->pw_name 错误。是否有可能某些files/directories 没有所有者,或者我为什么可以获得"Segmentation fault"?
更新: 错误检查后,我得到以下结果(如 find 中的 -ls):
119 0 ---xrwxr-- 91 - 守护进程 9007206 Apr 29 00:03 ./Test/test.txt
119 0 ---xrwxr-- 91 - 守护进程 9007206 Apr 29 00:03 ./Test/Test2
119 0 ---xrwxr-- 91 - 守护进程 9007206 Apr 29 00:03 ./Test/Test2/test2.txt
这个文件/目录有什么问题?
【问题讨论】:
-
显示的输出是否与显示的代码匹配?我对此表示怀疑。