我试图构建一个字符串来调用带有 args 的脚本,其中一个 args 是从文件中读取的,但我得到了换行,输出是这样的
/home/glennwiz/develop/c/SnuPort/ExpGetConfig.sh xogs1a 3/37
> lastConfig.txt
我希望 3/37 和 > lastConfig 在同一行。
这是我的代码。
char getConfig[100] = "/home/glennwiz/develop/c/SnuPort/ExpGetConfig.sh ";
char filedumpto[50] = " > lastConfig.txt";
FILE* file = fopen("rport.txt","r");
if(file == NULL)
{
return NULL;
}
fseek(file, 0, SEEK_END);
long int size = ftell(file);
rewind(file);
char* port = calloc(size, 1);
fread(port,1,size,file);
strcat(getConfig, argv[1]);
strcat(getConfig, port);
strcat(getConfig, filedumpto);
printf(getConfig);
//system(getConfig);
return 0;
编辑
我将输出转储到一个文件并在 vim 中打开它来查看,它在变量之后发送一个 ^M,我相信这是输入?为什么这样做 iv 尝试了这篇文章下的解决方案,但它不起作用。
tester port print!!!!
/home/glennwiz/develop/c/SnuPort/ExpGetConfig.sh randa1ar2 5/48^M
> SisteConfig.txt
tester port print!!!!