popen()函数可以打开一个进程用于读取或写入进程的标准输入或输出。它接受两个参数,一个是执行的命令,另一个是文件模式。在使用popen()函数时,需要注意的是要用pclose()函数关闭打开的进程。下面是一个简单的示例代码:
```
FILE *fp;
char buffer[1024];
fp = popen("ls -l", "r");
if (fp == NULL) {
printf("Error opening pipe!\n");
return 1;
}
while (fgets(buffer, sizeof(buffer), fp) != NULL) {
printf("%s", buffer);
}
pclose(fp);
```
system()函数可以执行一个命令并等待它执行完毕。它只接受一个参数,即执行的命令。下面是一个示例代码:
```
int status;
status = system("mkdir testdir");
if (status == -1) {
printf("Error creating directory!\n");
}
```
在使用system()函数时,需要注意避免使用用户输入的命令,以免造成安全风险。
总的来说,popen()和system()函数都是用来执行外部命令的函数,可以很方便地与Linux系统进行交互。在实际编程中,根据具体需求选择使用哪个函数来执行命令,可以提高程序的效率和安全性。