gpt4 book ai didi

c - 将外部程序作为线程而不是进程运行

转载 作者:太空宇宙 更新时间:2023-11-04 07:05:56 25 4
gpt4 key购买 nike

我希望能够将外部程序作为 pthread 而不是作为 C 中的单独进程运行。例如,我将如何更改以下程序以使用线程?

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <unistd.h>

// ...other code

int main () {
char* command[] = {"/bin/ls", NULL};
pid_t pid = fork();

if (pid == 0) {
execv(command[0], command);
} else {
wait(NULL);
}
return 0;
}

最佳答案

这个问题没有多大意义,因为进程和线程之间的主要区别在于线程共享一个内存空间,而外部程序不能这样做。如果您希望两个进程共享内存,您可能希望加载一个动态库或让两个进程映射一个共享内存对象。

不过,一种无需替换进程即可从子线程运行外部程序的方法是使用 popen()

关于c - 将外部程序作为线程而不是进程运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32940457/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com