c - 为什么 system() 存在?
问题描述
许多论文等提到对“system()”的调用是不安全且不可移植的。我不反对他们的论点。
不过,我注意到许多 Unix 实用程序都有一个等效的 C 库。如果没有,源代码可用于各种这些工具。
虽然许多论文等都反对goto
.,但有些人可以为它的使用提出论据,而且它在 C 中的原因很简单。
那么,我们为什么需要system()
?有多少现有代码依赖于它而无法轻易更改?
解决方案
讽刺的回答因为如果它不存在人们会问为什么这个功能不存在......
更好的答案
许多系统功能不是“C”标准的一部分,而是 Linux 规范的一部分,Windows 很可能有一些等价物。因此,如果您正在编写一个仅在 Linux 环境中使用的应用程序,那么使用这些功能就不是问题,因此实际上很有用。如果您正在编写一个可以在 Linux 和 Windows(或其他)上运行的应用程序,这些调用就会出现问题,因为它们可能无法在系统之间移植。关键(imo)是您只需了解问题/疑虑并进行相应的编程(例如,使用适当的#ifdef 来保护代码等......)
推荐阅读
- flutter - StreamBuilder 仅显示第二个 MergeStream 元素的结果
- python - 需要帮助重新调整 NASDAQ IPO API 无法在 Python 中运行
- c# - 为什么我的 C# 在 SharePoint 上找不到任何列表?
- user-interface - 如何在 Fyne 中将窗口大小调整为对话框大小
- android - 回收站视图未在 Fragment (Android) 上显示项目
- npm - 终端卡住,npm install 后无法输入 git 命令
- python - 如何在pycharm中清除屏幕
- c# - 不支持使用 let 关键字的 Entity Framework Core 5?
- css - RStudio Connect 在更新时将 CSS 粘贴到单元格中
- c++ - OpenCL 内核删除所需的时间