Concurrency 如何查找特定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.

例如,如果我使用c程序中的system()命令来调用shell命令,那么它是完成shell命令,然后继续执行程序,还是同时执行这两个命令

查找此信息的各种方法有哪些?

您可以使用
fork()
exec()
进行非阻塞,但是
system()
调用正在阻塞。这意味着在继续执行C程序之前,它将等待shell命令完成

注意:如果您希望它立即返回,您可以发出
系统
命令,命令后面有一个
&
,您的C程序将同时运行

顺序示例:
system(“long_script.sh”)

并发示例:
系统(“long_script.sh&”)