我是否需要处理以下代码中的任何错误情况?
Do I need to handle any error cases in my code below?
我的代码写入文件如下。我需要担心任何错误情况吗? 我是否需要处理以下错误情况?
1.I/O操作出现逻辑错误,
2.I/O操作出现读/写错误,
3.异常安全。
如果是,我该怎么做,如果不是,安全吗?
char command[150]={0};
sprintf(command, "/mypath/mycommand > %s", FileName);
system(command);
如果文件名是looooooong,command
可能会溢出。错误时system(3)
返回 -1
见man 3 system
返回的值在错误时为 -1(例如 分叉(2( 失败(,并且 否则返回命令的状态。 后一种返回状态是 采用 wait(2( 中指定的格式。 因此,命令的退出代码 将为 WEXITSTATUS(status(。 如果无法执行/bin/sh, 退出状态将是执行 exit(127( 的命令的状态。
如果命令的值为 NULL,则 system(( 返回非零值,如果 shell 可用,如果不可用,则为零。
system(( 不会影响任何其他子项的等待状态。
如果发生错误,也许应该删除输出文件。
我遵循的一般经验法则是墨菲定律:任何可能出错的东西最终都会出错。考虑到这一点,我总是检查错误和异常,除非有很好的理由认为检查错误是不必要的或多余的。但是,这些情况也大多保持在最低限度。
对于您的代码,我会提出相同的建议:忽略代码的错误代码是否总是安全的?如果代码遇到错误,是否有任何特定操作要执行?看看你的代码,我相信很少有事情可能会出错(mycommand
被用户删除/移动/重命名,其执行权限被更改等(。这些会影响程序的其余部分吗?
相关文章:
- 类和构造函数中的函数根本不起作用,并且不返回任何错误
- boost::p rogram_options 在指定意外的位置参数时不报告任何错误
- Antlr cpp 运行时 任何错误的指针转换?
- 我可以使用 try catch 语句来捕获任何错误而不是具体错误吗?
- 为什么 C++ 中的分号在插入代码开头时不显示任何错误?
- 如何修复任何错误
- 为什么<<低;和 cout<<v.begin;单独给出错误,但 cout <<(lower.begin());没有给出任何错误,并使代码易于编译
- 我是否需要处理以下代码中的任何错误情况?
- 我的代码在构建时没有任何错误,但无法正常工作
- 由于错误,c ++代码无法在Visual Studios上运行,但不显示任何错误
- ROS2 COLCON构建未在Windows中显示任何错误消息
- 如何调试 gRPC 服务器崩溃而没有任何错误
- 尝试使用类,但未打印任何内容.不会生成任何错误.我错过了什么吗?
- 代码没有任何错误,但什么也不在命令提示中
- GTK图像突然不会刷新任何错误或警告
- STL 中是否有任何错误代码异常
- 用“ strcpy”在2D数组中删除(字符)的一行(字符)时是否存在任何错误
- Oracle ODBC 插入失败,没有任何错误诊断
- 检查输入的文件是否有任何错误
- 带有绝对路径的LoadLibrary返回不正确的HMODULE,没有任何错误