0

スクリプト「 check.sh 」が何も返さない場合、ウィンドウに何かを出力する必要があります。これは、スクリプトからの出力が返されない場合の検証を意味します。

check.sh には何も含まれていません。これは、実行時に何も返さない単なる空の sh ファイルです。空のshファイルでテストしています(その理由である正確なスクリプトを表示できません)。

私が印刷したいのは、check.shが何も返さないときにCを介して「何かを設定してください」のようなメッセージです。

"\n","\r","\0",NULL でバッファー行をチェックしました (以下のモジュールをチェックしてください) 。

モジュールをexecute_command("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);
}
4

1 に答える 1

0

このfgetsのマニュアルページによると、文字が読み取られる前にファイルの終わりが発生した場合、それが返さNULLれ、バッファの内容は変更されません。

于 2010-02-03T15:09:36.350 に答える