Linux中的popen()和system()函数是在C语言编程中经常用到的两个函数,它们都可以用来执行外部命令。在Linux系统中,常见的外部命令包括ls、mkdir等常用命令,也可以是用户自定义的命令。

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系统进行交互。在实际编程中,根据具体需求选择使用哪个函数来执行命令,可以提高程序的效率和安全性。