2017-07-10 4 views
0

コマンド:spawnlモードは、私は自分のアプリケーションが終了した後、私は次のことをやっているDOSのターミナルセッションを復元するためにspawnl使用する

static char* pszMode = "mode.com"; 
    int intRC = spawnl(P_WAIT, pszMode, pszMode, "co80", NULL); 
    char szCOM2setup[80]; 
    sprintf(szCOM2setup, "%s:9600,n,8,1", clsPort::mpcszCOM2); 
    intRC = spawnl(P_WAIT, pszMode, pszMode, szCOM2setup, NULL); 

mpcszCOMはINTRCが含まれている両方のケースでCOM2

が含まれています-1、私は一歩の実行を実行していると、これらのコマンドが正しく実行されているように見えない、私は何をしていないのですか?

私は組み込みPC104プラットフォームでROM-DOSバージョン6.22を使用しています。

私はperrrorでチェックしSTRERRORを使用しましたが、実際のエラーは次のとおりです。

No such file or directory 

しかし、なぜ?パスは、アプリケーションが起動される前に設定され、アプリケーションと同じフォルダ内のコマンドラインからmode.comにアクセスできます。

spawnlの代わりにspawnlpを使用してみましたが、これはまったく同じエラーではありません。

+1

'spawnl'関数が失敗すると' errno'をセットしますか( '-1'を返しますか?)おそらく、 '' perror'(http://en.cppreference.com/w/c/io/perror)を使って '' errno''が失敗したことを確認しましたか? –

+0

はい、どちらの場合も、errnoには2が含まれていますが、これはどういう意味ですか? – SPlatten

+1

私は分かりません。エラー番号はC++仕様の一部ではありません。 'perror'を使って、エラーに関する読みやすい文字列を出力します。 –

答えて

0

パスが正しく設定されているにもかかわらず、アプリケーションで「No such file or directory」が返されていたため、パスを含めるようにアプリケーションを修正しました。

関連する問題