【发布时间】:2014-02-28 13:37:00
【问题描述】:
我正在尝试创建一个简单的程序,该程序在作为命令参数输入的文件位置上使用 system() 调用 cat。但是每次调用文件时都会遇到分段错误(核心转储)。您能否检查一下原因(我在程序中的任何地方都看不到我正在用内存做一些事情来得到这个错误!)。
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
if(argc != 2)
{
printf("usage: %s filename", argv[0]);
}
else
{
printf("commad: %s", strcat("cat ", argv[1]));
system(strcat("cat ", argv[1]));
}
return 0;
}
【问题讨论】:
-
修改字符串文字是未定义的行为。
-
你能解释一下吗
-
@MohamedAliJamaoui 您需要为 strcat 提供目标缓冲区
标签: c++ c segmentation-fault