想知道再c++里怎样创建一个进程,用什么函数?能否给个示例?

想知道再c++里怎样创建一个进程,用什么函数?能否给个示例?,第1张

windows下用CreateProcess,参见MSDN的示例。

控制进程间的访问

CreateFileMapping可以在进程间共享内存,socket、NamePipe可以用于进程间通信。CreateMutex/CreateSemaphore可以用于进程间同步。

任何一种编程语言,启动进程和关闭进程都是跟 *** 作系统相关的 *** 作,python中与 *** 作系统打交道的话,推荐使用os模块。

ossystem() 函数可以启动一个进程,执行完之后返回状态码。

osfork() 复制一个进程,如果是子进程返回0,如果是父进程返回子进程的pid,使用这个函数的时候,建议你学习一下linux编程的知识。

ospopen 以管道的方式创建进程。

osspawnl 也可以创建进程,并能指定环境变量。

oskill(pid, sig) 关闭一个进程,pid是进程号,sig是信号。与fork配合使用,例如你刚才用fork创建了一个子进程,它的pid是11990, 那么调用

oskill( 11990, signalCTRL_BREAK_EVENT)

就以ctrl+c的方式杀死了这个进程。

另外还有一个模块multiprocessing,这个模块封装了很多创建进程和进程间通信的 *** 作,可以让你发挥多核的威力。

调用wait或waitpid有三种不同的情况发生:

1、如果其所有子进程都还在运行,则阻塞

2、如果一个子进程终止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回

3、如果它没有任何子进程,则立即出错返回

如果进程由于接收到SIGCHLD信号而调用wait,则可期望wait会立即返回,但是如果在任意时刻调用wait,则进程可能会阻塞。

在一个子进程终止前,wait使其调用者阻塞,而waitpid有一个选项,可使调用者不阻塞。

waitpid并不等待在其调用之后的第一个终止子进程,他有若干选项,可以控制他所等待的进程。

调用函数的时候,函数就开始了。return的时候结束。

以上虽然是一个非常一般性的回答,但是事实确实如此。

程序开始时调用主函数,于是主函数开始了。直到主函数return。主函数结束。

别的函数和主函数也没啥区别啊,调用它的时候就开始了,return就结束了。

至于进程吗。其实跟函数这个概念一起讨论很奇怪。

反正进程开始的时候,入口就是主函数。主函数结束了,进程也要结束了。

当然了,这两个不能完全画等号。。。因为主函数结束了,一般还要有很多系统的调用,才能让该进程结束的。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/11666321.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存