Concurrency 如何查找特定shell命令的状态(阻塞或非阻塞)?
例如,如果我使用c程序中的system()命令来调用shell命令,那么它是完成shell命令,然后继续执行程序,还是同时执行这两个命令 查找此信息的各种方法有哪些?您可以使用Concurrency 如何查找特定shell命令的状态(阻塞或非阻塞)?,concurrency,pthreads,blocking,nonblocking,Concurrency,Pthreads,Blocking,Nonblocking,例如,如果我使用c程序中的system()命令来调用shell命令,那么它是完成shell命令,然后继续执行程序,还是同时执行这两个命令 查找此信息的各种方法有哪些?您可以使用fork()或exec()进行非阻塞,但是system()调用正在阻塞。这意味着在继续执行C程序之前,它将等待shell命令完成 注意:如果您希望它立即返回,您可以发出系统命令,命令后面有一个&,您的C程序将同时运行 顺序示例: system(“long_script.sh”) 并发示例: 系统(“long_script.
fork()
或exec()
进行非阻塞,但是system()
调用正在阻塞。这意味着在继续执行C程序之前,它将等待shell命令完成
注意:如果您希望它立即返回,您可以发出系统
命令,命令后面有一个&
,您的C程序将同时运行
顺序示例:
system(“long_script.sh”)代码>
并发示例:
系统(“long_script.sh&”)代码>