用c语言创建一个进程并传入参数显示
时间: 2024-10-27 09:03:22 浏览: 22
Linux中使用C语言的fork()函数创建子进程的实例教程
在C语言中,可以使用`fork()`函数创建一个新的进程,而传递参数通常通过命令行参数或者共享内存来进行。下面是一个简单的例子,展示了如何创建子进程并接收命令行参数:
```c
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
// 定义接收命令行参数的函数
void process_with_argument(int arg) {
printf("Received argument: %d\n", arg);
}
int main() {
// 创建子进程
pid_t child_pid = fork();
if (child_pid == 0) { // 子进程
// 父进程退出,让子进程继续
exit(0);
// 在子进程中,获取命令行参数并调用处理函数
int received_arg = atoi(getenv("ARGV")); // 假设参数作为环境变量ARGV传递
if (received_arg != -1)
process_with_argument(received_arg);
else
printf("Error: No argument provided for the child process.\n");
} else if (child_pid > 0) { // 父进程
printf("Parent process started a child with PID: %d\n", child_pid);
// 在这里,你可以执行其他操作,比如关闭子进程等
wait(NULL); // 等待子进程结束
printf("Child process ended.\n");
} else { // fork失败的情况
perror("Fork failed");
exit(EXIT_FAILURE);
}
return 0;
}
```
在这个例子中,你需要在命令行运行程序的时候提供参数,如 `./your_program_name some_integer`. 参数将通过`getenv("ARGV")`从命令行环境中获取。
阅读全文