我遇见的第一个报错Segmentation fault问题
来源:互联网 发布:什么是软件外包公司 编辑:程序博客网 时间:2024/04/30 08:37
1、函数功能: 将用户文件夹 /etc/passwd 中的用户名和路径选出来并放在一个结构体中,然后将结构体放在一个新的文件中去。
2、出现的错误:我在写完代码之后一直有Segmentation fault这样的错误,查找很久都没发现,最后还是王老师帮忙找到的问题处在33行 if(fp_n==NULL){, 其中的“==”我写了一个,导致的结果是花费了我今天一晚上的时间去找错,切记今后这样写 if(NULL==a),如果忘记==,可以报错,切记切记!
3、还有一个小问题, 40 strcpy(str,p); 41 token=strtok(str,":");,在这两行中,本来我以为str只是起了过度的作用,用着多余,我尝试不用它,可是删除之后,一直报错,后来有改了过来。
错误原因:p本来指向buf,strtok函数在调用p后,p指针就乱了,不知道指向buf哪里了,所以就出现了错误,这是strtok函数自身的原因。所以str这个数组在这里还是不能不用的。
1 #include <stdio.h>
2 #include <string.h>3
4 typedef struct info
5 {
6 char name[20];
7 char road[50];
8 }stu_info;
9 int main(void)
10 {
11 FILE *fp;
12 FILE *fp_in;
13 char buf[256];
14 char *p;
15 char str[256];
16 char *token;
17 int i=0,j=0;
18 stu_info st[50];
19
20 fp=fopen("/etc/passwd","r");
21 if(fp==NULL){
22 printf("open file fail!\n");
23 return 1;
24 }
25
26 fp_in=fopen("passwd_name_road.txt","w");
27 if(fp_in==NULL){
28 perror("open:");
29 return ;
30 }
31
32 /* fp_n=fopen("name","w");
33 if(fp_n==NULL){
34 printf("open file fail!\n");
35 return 1;
36 }
37 fputs("wangsong",fp_n);
38 */
39 while((p=fgets(buf,256,fp))!=NULL){
40 strcpy(str,p);
41 token=strtok(str,":");
42 strcpy(st[j].name,token);// printf("%s\n",token);
43 while((token=strtok(NULL,":"))!=NULL){
44 i=i+1;
45 if(i==5)
46 strcpy(st[j].road,token); //printf("%s\n",token);
47 }
48 i=0;
49 j++;
50 }
51 for(i=0;i<j;i++)
52 printf("st[%d].name:%s\t\t\t\t\
53 st[%d].road:%s\n",i,\
54 st[i].name,i,st[i].road);
56 printf("aaaaaaaaaaaaaaaaa\n");
57
58 /* printf("%s",p);*/
59 printf("st[0].name:%s\tst[0].road:%s\n",st[0].name,st[0].road);
60 rewind(fp_in);
61 printf("stu_info length:%d\n",sizeof(int));
62 fwrite(st,sizeof(stu_info),1,fp_in);
63 printf("bbbbbbbbbbbbbbbbbbb\n");
64 fclose(fp_in);
65 fclose(fp);
66
67 return 0;
68 }
- 我遇见的第一个报错Segmentation fault问题
- 什么是Segmentation fault(Core Dump)? + 我遇到的实例问题
- 什么是Segmentation fault(Core Dump)? + 我遇到的实例问题
- 什么是Segmentation fault(Core Dump)? + 我遇到的实例问题
- 什么是Segmentation fault(Core Dump)? + 我遇到的实例问题
- 关于Segmentation fault的问题
- gcc 编译的segmentation fault诡异问题
- Debug一个Segmentation fault的问题
- Segmentation fault 问题浅谈
- Segmentation fault 问题浅谈
- Segmentation fault 问题
- Segmentation fault 问题浅谈
- Segmentation fault 问题浅谈
- Segmentation fault 问题浅谈
- 调试 Segmentation fault 问题
- Segmentation fault 问题浅谈
- segmentation fault的调试
- Segmentation fault (core dumped)问题
- 手把手教你ARC——iOS/Mac开发ARC入门和使用
- 嵌入式项目经验
- CRF Papers 总结 (First stored)
- iOS: UIScrollView的属性bouncesZoom
- Android博客收录
- 我遇见的第一个报错Segmentation fault问题
- 深入理解gtest:C/C++单元测试经验谈
- Linux Kernel中断子系统来龙去脉浅析
- CreateCompatibleDC 说明
- iOS: UIScrollView的属性canCancelContentTouches
- HDU 1711 Number Sequence(简单KMP)
- openstack 工作原理分析
- 将某字段的值显示为数字
- iOS: UIScrollView的属性contentInset