C 捕获从命令行返回的空输出,并在其为空时显示一些消息

C 捕获从命令行返回的空输出,并在其为空时显示一些消息,c,stdio,fgets,C,Stdio,Fgets,当脚本“check.sh”未返回任何内容时,我需要在窗口中打印一些内容,这意味着在脚本未返回任何输出时进行验证 check.sh中不包含任何内容。它只是一个执行时不返回任何内容的空白sh文件。我正在使用一个空的sh文件进行测试(我无法向您显示确切的脚本,这就是原因) 当check.sh不返回任何内容时,我想通过C打印一些消息,如“configuresomething” 我用“\n”、“\r”、“\0”和NULL检查了缓冲区行(在下面的模块中检查)。。我不知道当脚本没有返回任何内容时会发生什么 我

当脚本“check.sh”未返回任何内容时,我需要在窗口中打印一些内容,这意味着在脚本未返回任何输出时进行验证

check.sh中不包含任何内容。它只是一个执行时不返回任何内容的空白sh文件。我正在使用一个空的sh文件进行测试(我无法向您显示确切的脚本,这就是原因)

当check.sh不返回任何内容时,我想通过C打印一些消息,如“configuresomething”

我用“\n”、“\r”、“\0”和NULL检查了缓冲区行(在下面的模块中检查)。。我不知道当脚本没有返回任何内容时会发生什么

我将调用模块作为执行命令(“sh check.sh”)

这是我的模块

char *execute_command(char *command)
{
    FILE *fpipe;
    char line[1024]="";
    //char *line = (char*)malloc(1024*sizeof(char));
    int i =0;

    if ( !(fpipe = (FILE*)popen(command,"r")) )
    {  // If fpipe is NULL
        perror("Problems with pipe");
        exit(1);
    }

    while ( fgets( line, sizeof line, fpipe))
    {
        // printf("%s", line);
    }

    while(line[i]!='\0')
    {
        if(line[i]==' ')
        {
            line[i]=',';
        }
        i++;
    }
    pclose(fpipe);
    printf("%s",line); // This is where i want to know what the buffer has when the script returns nothing 
    return(line);
}

根据此手册页,如果文件结尾出现在读取任何字符之前,则返回
NULL
,并且缓冲区内容保持不变

请改进问题的格式。特别是,更好地缩进代码:因为它是不可理解的。否则人们(比如我)不会帮你。请留下一张关于解决方案的便条,你能解决它吗?