コマンドをシミュレートしようとして
いるときに、ユーザーからの特定のコマンドが失敗した場合、問題のある出力bash
と呼ばれるファイルに書き込む必要もあります。errors.log
間違った入力をいくつか入力しようとしましたが、必要なファイルが期待どおりに更新されません。
ここに がありmain
ます。これは多くのコードですが、変数のそれぞれについて疑問がある場合は、 main 全体を入れます。main の実際のアクションは、fork と、コードの一番下にhandleSonProcess
あるメソッドの呼び出しで行われます。
#define BUFFER 4096
#define BUFFER2 1024
#define RUN_FOREVER 1
#define ERROR_SIGN -1
#define TRUE 1
#define FALSE 0
入力でコードを実行するとls ddddx
、出力は次のようになります。
ls: cannot access ddddx: No such file or directory
その出力をファイルに書き込みたいのですerrors.log
が、書き込まれません。
どうしたの ?
ありがとう
編集
errorFile = open("errors.log",O_WRONLY | O_TRUNC | O_CREAT,0600);
// open errors file
// if(errorFile <= 0)
{
sprintf(errorStr,"open: %s\n",strerror(errno));
write(errorFile,errorStr,strlen(errorStr));
fflush(stdout);
perror("open");
close(errorFile);
return 0;
}