c - c Linux 中 system() 的替代方案,用于在 Linux 上执行终端命令

标签 c linux misra

我想在 C 程序中执行 Linux 的终端命令。目前我正在使用 system() 函数,但我想使用任何其他函数,因为根据 MISRA 禁止使用 system() 函数。

例如,我该如何替换

 system("hwclock --systohc --utc");

最佳答案

首先你可以使用fork()创建一个子进程,然后在子进程中,你可以调用exec()来执行你想要的命令。< br/> 有一个简单的例子:

$ chmod u+x command.sh 
$ cat command.sh  

#!/usr/bin/env 庆典
ls-l

*************** 测试.c ****************

#include<unistd.h>
int main(void)
{
  execl("./command.sh","command.sh",(char*)0);
  return 0;
}

关于c - c Linux 中 system() 的替代方案,用于在 Linux 上执行终端命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30662427/

相关文章:

c - "mkdir()"不工作

linux rm 无法删除文件

c - 如何定义符合 MISRA 2012 规则 5.2 的变量名称?

linux - 如何在 Linux Ubuntu 中创建 .sh 扩展文件?

c - 是否可以禁用外部库的 MISRA 检查?

c - 如何使用 resolve MISRA C error for assembly language inline function?

c - 假设线程的执行顺序 - 陷阱和更正

c - 这行代码有什么作用?

javascript - Javascript中的C解析器

linux - 相对于其他 shell 命令,排序命令是否看到数据流乱序?