int ifmount(char **spath,char **dpath)
{
FILE* fp;
char buf[BUF];
char *sou, *des;
int sp=0,dp=0;
if(fp = fopen("/proc/mounts","r") == NULL)
{perror("File open error\n");}
else
{
printf("aaaaaaaaaaaaaaa\n");
while((fgets(buf,BUF,fp)) != NULL)
{
printf("aaaaaaaaaaaaaaa\n");
sou=strtok(buf," ");
des=strtok(NULL," ");
sp=strcmp(*spath,sou);
dp=strcmp(*dpath,des);
if(sp == 0 && dp == 0)
{
fclose(fp);
return 1;
}
}
}
fclose(fp);
return -1;
}
BUF 是宏定义 值为1024 第一个aaaaaaaaaaaaaaa 可以打印出来第二个aaaaaaaaaaaaaa打印不出来程序段错误请大神指正。
linux c fgets 函数 出现段错误 请大神指正
答案:2 悬赏:70 手机版
解决时间 2021-02-12 06:38
- 提问者网友:niaiwoma
- 2021-02-11 08:54
最佳答案
- 五星知识达人网友:琴狂剑也妄
- 2021-02-11 10:05
出现段错误的原因是fp这个指针没有正确的赋值。
应该在赋值的时候加上括号
if ((fp = fopen("/proc/mounts","r") )== NULL)
或者 写成两行
fp = fopen("/proc/mounts","r") ;
if (fp == NULL) ....
应该在赋值的时候加上括号
if ((fp = fopen("/proc/mounts","r") )== NULL)
或者 写成两行
fp = fopen("/proc/mounts","r") ;
if (fp == NULL) ....
全部回答
- 1楼网友:神的生死簿
- 2021-02-11 11:30
支持一下感觉挺不错的
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯