C编程:错误:应为(‘;)’;前字符串常量

C编程:错误:应为(‘;)’;前字符串常量,c,syntax,C,Syntax,给了我 错误:字符串常量前应为“)” 我不太清楚为什么会发生这种情况。请告知任何帮助:)字符串文字可以这样连接,但字符串值不能 此外,您似乎希望gcommand的输出在缓冲区output中结束 使用系统功能无法执行此操作。假设您将在POSIX样式的shell中执行,是shell重定向操作符,那么它右边的内容必须是shell中的文件名(或描述符) 要执行命令并捕获输出,一种方法是使用POSIX函数: shell_command(char gcommand[100]) { char output[

给了我
错误:字符串常量前应为“)”


我不太清楚为什么会发生这种情况。请告知任何帮助:)

字符串文字可以这样连接,但字符串值不能

此外,您似乎希望
gcommand
的输出在缓冲区
output
中结束

使用
系统
功能无法执行此操作。假设您将在POSIX样式的shell中执行,
是shell重定向操作符,那么它右边的内容必须是shell中的文件名(或描述符)

要执行命令并捕获输出,一种方法是使用POSIX函数:

shell_command(char gcommand[100]) {
 char output[100];
 system(gcommand ">" output);

 return output;
}

您希望系统(gcommand“>”输出)得到什么要做什么?这完全是错误的C。解决了这个问题,我敢打赌,你的问题不会是如何附加字符串,看看这个关于如何在C中添加字符串的答案。我想他是在试图通过系统命令将管道插入C数组?这也不行。
输出充其量是一个空字符串,充其量是一个垃圾。这个阵列的用途是什么?
FILE *pipe = popen(gcommand, "r");
char output[100] = { 0 };

if ( pipe )
{
    fgets(output, sizeof output, pipe);
    pclose(pipe);
}

return output;