【发布时间】:2017-09-18 04:14:05
【问题描述】:
我想更改 Linux 系统的时区。我知道有很多方法。 一种方法是使用 tzset() 函数,另一种方法是从 'popen()' 函数调用 'timedatectl' 命令。 我正在使用第二种方法,即使用“popen()”。
我只想问在你的代码中使用“popen()”是一种好的编程习惯吗?
另外,我小心地为每个“popen()”调用“pclose()”。
【问题讨论】:
-
它是 C 或 C++,请选择一个。
-
如果有一个函数调用来完成这项工作,我宁愿在生成新进程之前使用它,如果没有,使用
popen没有任何问题。使用函数调用进行错误处理通常更容易,如果函数调用丢失或错误,您很可能会遇到编译时错误。 IMO:这并不总是不好的做法,但在您的特殊情况下确实如此。 -
问这样的问题意味着您已经尝试了一些东西,但您发现出了问题或可能会出错。如果是这样,问题究竟出在哪里?
-
使用 popen 是不错的做法,除非您知道自己想要实现什么。我已经看到了一些使用 popen 对文件进行分类并在其中搜索字符串的代码。这可以通过使用文件读取和搜索字符串来实现。
-
@GillBates 您认为 C++ 与 C 的答案会有所不同吗? C++ 的标准库中是否有更好的
popen()?