QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 946|回复: 8

帮忙,看看错哪了

[复制链接]
发表于 2004-9-21 15:00:18 | 显示全部楼层 |阅读模式
[code:1]
#include        <dirent.h>
#include        <stdio.h>

int main(int argc, char *argv[])
{
        DIR *dirp;
        struct dirent entry, *ptr;
       
        if (argc != 2)
        {
                printf("Usage: %s <dirname>\n", argv[0]);
                return 1;
        }
       
        if ((dirp = opendir(argv[1])) == NULL)
        {
                printf("%s : opendir error\n", argv[0]);
                return 1;
        }
       
        do
        {
                readdir_r(dirp, &entry, &ptr);
                printf("%s\n", ptr->d_name);
        } while (ptr != NULL);
       
        closedir(dirp);
        return 0;
}[/code:1]
发表于 2004-9-21 15:37:14 | 显示全部楼层
什么错误?
回复

使用道具 举报

 楼主| 发表于 2004-9-21 15:41:17 | 显示全部楼层
在正确输出之后是段错误
回复

使用道具 举报

发表于 2004-9-21 15:48:54 | 显示全部楼层
给prt指针分配一段内存试试?
回复

使用道具 举报

发表于 2004-9-22 09:05:51 | 显示全部楼层
我想应该是指针的问题。我遇到的绝大多数“段错误”都是因为指针出了问题。可用gdb定位错误的地方。不过对上面的库函数不了解,也只能说这么多了。
回复

使用道具 举报

发表于 2004-9-22 09:29:17 | 显示全部楼层
当你的ptr为NULL时,你还打印了一次。在printf前面加一个判断ptr是否为NULL的语句或用readdir
回复

使用道具 举报

 楼主| 发表于 2004-9-22 13:00:17 | 显示全部楼层
昨天这个问题我同时在linuxfans,chinalinux,linuxsir,清华bbs linuxdev版发问,
chinalinux,linuxsir,最早有正确回复,linuxfans今天总算是也有了,
感谢
昨天头有点晕
回复

使用道具 举报

发表于 2004-9-22 13:21:27 | 显示全部楼层
我们还要努力!   
回复

使用道具 举报

发表于 2004-9-22 13:23:17 | 显示全部楼层
楼主blog照片中哪个是你?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 11:27 , Processed in 0.052840 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表