开发者

Execute another program in multi-threaded program

Just wondering how if it's possible to execute another program in a thread and send information to/get information from it. Essentially the s开发者_如何学Goame concept as with a child process and using pipes to communicate - however I don't want to use fork.

I can't seem to find whether it's possible to do this, any help would be appreciated.

Thanks


You cannot use the exec family of functions to load another executable file within a thread; the exec functions replace the entire process with the process started from the executable. Thus fork() is necessary if you want your original process to keep running.

In theory you could replicate most of the behaviour of the exec system call in userspace, and run an executable within a thread - but as the thread would share the open file table, signal handlers and so on with the rest of the process, it would likely destructively interfere with the main process. It would also be a lot of work.


If you're not using fork (directly or indirectly), then it's not really another process. Of course, you can communicate between threads within a process. That's essential to most multithreading.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜