我的代码写入文件如下。我是否需要担心任何错误案例? 我是否需要处理以下错误情况?
1. I / O操作的逻辑错误,
2.在I / O操作上读/写错误,
3.例外安全。
如果是,我该怎么办呢?如果没有,是否安全?
char command[150]={0};
sprintf(command, "/mypath/mycommand > %s", FileName);
system(command);
答案 0 :(得分:2)
command
可能会溢出。 system(3)
错误时返回-1
请参阅man 3 system
错误时返回的值为-1(例如fork(2)失败),以及 否则返回命令的状态。后者的返回状态是 以wait(2)中指定的格式。因此,命令的退出代码 将是WEXITSTATUS(状态)。如果无法执行/ bin / sh, 退出状态将是退出(127)的命令。
如果command的值为NULL,则system()如果是shell则返回非零值 是可用的,如果没有则为零。
system()不会影响任何其他孩子的等待状态。
如果发生错误,可能应该删除输出文件。
答案 1 :(得分:0)
我遵循的一般经验法则是墨菲定律:任何可能出错的东西最终都会出错。考虑到这一点,我总是检查错误和异常,除非有充分的理由检查错误是不必要的或多余的。但是,这些情况大多数也要保持在最低限度。
如果是您的代码,我会提出相同的建议:忽略代码的错误代码是否总是安全的?如果代码遇到错误,是否有任何特定的操作?查看您的代码,我认为可能出现的问题很少(用户删除/移动/重命名mycommand
,其执行权限已更改等)。这些会影响你的其他程序吗?