免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 950 | 回复: 2
打印 上一主题 下一主题

Segmentation fault这个错误怎么回事(附上代码) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-11 19:08 |只看该作者 |倒序浏览
运行一下程序出现Segmentation fault
我是在redhat 9

  1. gcc ls1.c -o test
  2. ./test
  3. #include        <sys/types.h>;
  4. #include        <dirent.h>;
  5. #include        "ourhdr.h"

  6. int
  7. main(int argc, char *argv[])
  8. {
  9.         DIR                             *dp;
  10.         struct dirent   *dirp;

  11.         if (argc != 2)
  12.                 printf("a single argument (the directory name) is required");

  13.         if ( (dp = opendir(argv[1])) == NULL)
  14.                 printf("can't open %s", argv[1]);

  15.         while ( (dirp = readdir(dp)) != NULL)
  16.                 printf("%s\n", dirp->;d_name);

  17.         closedir(dp);
  18.         exit(0);
  19. }
复制代码

论坛徽章:
0
2 [报告]
发表于 2005-05-11 22:08 |只看该作者

Segmentation fault这个错误怎么回事(附上代码)

改为
if (argc != 2)
{
       printf("a single argument (the directory name) is required\n";
       exit(0);
}
你命令后面没有参数,opendir不能正确运行,当然段错误了。还有printf用法也不对。

论坛徽章:
0
3 [报告]
发表于 2005-05-11 23:25 |只看该作者

Segmentation fault这个错误怎么回事(附上代码)

原帖由 "rainshadow" 发表:
改为
if (argc != 2)
{
       printf("a single argument (the directory name) is required\n";
       exit(0);
}
你命令后面没有参数,opendir不能正确运行,当然段错误了。还有printf用法也不对。


正解!
:em11:
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP