在尝试模拟bash
命令时,如果来自用户的给定命令失败,我还需要写入一个称为errors.log
任何问题输出的文件。
我尝试输入一些错误的输入,但所需的文件没有按预期更新。
这是main
,它有很多代码,但如果对每个变量有任何疑问,我会把整个 main 放在上面。main 的实际操作发生在代码底部的handleSonProcess
分叉和对方法的调用中:
#define BUFFER 4096
#define BUFFER2 1024
#define RUN_FOREVER 1
#define ERROR_SIGN -1
#define TRUE 1
#define FALSE 0
当我使用 intput 运行代码时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;
}