我想知道如何操作 C 程序在终端中运行命令。
例如: 如果我运行此语句 PS1="Linuxrocks $",它在终端中运行良好。 但我该如何编写一个程序来完成同样的事情呢?或者我使用什么功能?
#include <sys/types.h>
#include <sys/wait.h>
#include <stdio.h>
#include <unistd.h>
int main() {
char *argv[3] = {"Command-line", ".", NULL};
int pid = fork();
if ( pid == 0 ) {
execvp( PS1="linuxrocks $", argv );
}
wait( NULL );
printf( "Finished executing the parent process\n" );
return 0;
}
最佳答案
使用 shell 脚本更改当前事件环境。
如果您运行一个二进制程序来执行此操作,它只会修改启动时分配的环境的自己的副本。
对后者的更改在程序结束后就消失了,因为程序的环境(应用了更改)届时将消失。
关于使用 fork() 和 exec() 在终端中创建新命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19557862/