我正在做一个C练习,让自己了解这个主题。我正在尝试使用我的程序来操作头文件;但程序返回“分段错误”。我已经将问题隔离到以下代码段。任何人都可以帮我看看究竟有什么问题吗?在字符串连接中导致此分段错误的原因是什么?
header=strtok(st,"\"");
header=strtok(NULL,"\"");
f=fopen(header,"r");
if(f)
{
while((ch=fgetc(f))!=EOF)
fputc(ch,f2);
fclose(f);
}
else
{
header2=(char *)malloc(strlen("/usr/include")+strlen(header));
header2=strcat("/usr/include/",header);
f=fopen(header2,"r");
printf("%s\n",header2);
while((ch=fgetc(f))!=EOF)
fputc(ch,f2);
fclose(f);
}
我已经指出,只有当我试图进入/ usr/include目录/位置出现问题。某种认证问题?如果是这样,怎么过来呢?提前致谢。 :)
你不能做到这一点:'标题2 = strcat的( “/ usr/include目录/”,报头);'。第一个参数必须是目标缓冲区。 –
使用前从'strtok'检查结果'header'。 –
解决所有其他问题后,您仍然需要检查第二个“fopen”的返回值。 – user3386109