小哥莫骚 2015-08-18 07:34
浏览 2841

关于 Abort trap: 6 的问题

第一次提问,略显紧张。问题可能有些幼稚,希望大神们海涵。本人写了一段c代码,
运行平台是linux/unix, 扫描该绝对路径下的所有文件项,当遇到目录文件时用继续展
开,简单来说就是一个文件的树形图,可以顺利运行,但是当扫描的文件数目较多的时候
比如从根目录扫描或者从home 目录扫描,可以运行成功,但运行完之后下面就会出现
Abort trap: 6的错误信息。说的不是很清晰,直接上代码。
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 void printdir(char name, int width)
8 {
9 DIR
dp;
10 dp = opendir(name);
11 if(dp == NULL)
12 {
13 perror("opendir");
14 exit(-1);
15 }
16 struct dirent *dir_file;
17 struct stat s_file;
18 int ret;
19 char buf[256];
20 memset(buf, 0, sizeof(buf) );
21 readdir(dp);
22 readdir(dp);
23 while( (dir_file = readdir(dp) ) != NULL)
24 {
25 sprintf(buf, "%s%s%s", name, "/", dir_file->d_name);
26 ret = stat(buf, &s_file);
27 if(ret != 0)
28 {
29 perror("stat");
exit(-1);
31 }
32 printf("%*s%-10s\n",width, "", dir_file->d_name);
33 if(S_ISDIR(s_file.st_mode) )
34 {
35 printdir(buf, width + 4);
36 }
37 }
38 closedir(dp);
39 }
40 int main(int argc, char *argv[])
41 {
42 if(argc < 2)
43 {
44 perror("argc wrong");
45 exit(-1);
46 }
47 printdir(argv[1], 0);
48 }

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 高德地图点聚合中Marker的位置无法实时更新
    • ¥15 DIFY API Endpoint 问题。
    • ¥20 sub地址DHCP问题
    • ¥15 delta降尺度计算的一些细节,有偿
    • ¥15 Arduino红外遥控代码有问题
    • ¥15 数值计算离散正交多项式
    • ¥30 数值计算均差系数编程
    • ¥15 redis-full-check比较 两个集群的数据出错
    • ¥15 Matlab编程问题
    • ¥15 训练的多模态特征融合模型准确度很低怎么办