Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux Bash-如何重定向某个线程的stdout?_Linux_Bash - Fatal编程技术网

Linux Bash-如何重定向某个线程的stdout?

Linux Bash-如何重定向某个线程的stdout?,linux,bash,Linux,Bash,假设我有一个C程序,它为不同的任务创建线程。现在,我想重定向bash脚本中某个线程的stdout 在这里,您可以假设我总是有办法获得进程id和线程id,我只想知道是否可以使用bash脚本以及如何实现这一点 注意:这不是关于进程,而是关于线程,我还没有发现任何与此相关的问题。只有一个控制台,而不是每个线程一个。因此,当5个线程与标准输出并行写入时,所有这些都会以不确定的方式进入单个接收器 因此,除非每一行都包含一个标识原始线程的特定字符串,否则不能在事后将该输出分离 或者,您可以让线程写入不同的文

假设我有一个C程序,它为不同的任务创建线程。现在,我想重定向bash脚本中某个线程的
stdout

在这里,您可以假设我总是有办法获得进程id和线程id,我只想知道是否可以使用bash脚本以及如何实现这一点


注意:这不是关于进程,而是关于线程,我还没有发现任何与此相关的问题。

只有一个控制台,而不是每个线程一个。因此,当5个线程与标准输出并行写入时,所有这些都会以不确定的方式进入单个接收器

因此,除非每一行都包含一个标识原始线程的特定字符串,否则不能在事后将该输出分离


或者,您可以让线程写入不同的文件!当您不将随机输出放在一起时,以后更容易获得单个源

只有一个控制台,而不是每个线程一个。因此,当5个线程与标准输出并行写入时,所有这些都会以不确定的方式进入单个接收器

因此,除非每一行都包含一个标识原始线程的特定字符串,否则不能在事后将该输出分离


或者,您可以让线程写入不同的文件!当您不将随机输出放在一起时,以后更容易获得单个源

一个进程中只有一个
stdout
,所有线程都共享它,这就是为什么有时必须使用某种互斥来保护它。这适用于整个文件描述符表,而不仅仅是
stdout
(fd 1)。一个进程中只有一个
stdout
,所有线程都共享它,这就是为什么有时必须使用某种互斥来保护它。这适用于整个文件描述符表,而不仅仅是stdout(fd1)。