目录
一、环境
二、介绍
三、C标准函数介绍
1、pipe
2、popen
3、pclose
4、注意
四、宏
五、常见的管道用法
1、一对一(父进程读子进程写一条管道)
2、一对一(父进程写子进程读一条管道)
3、一对多(父进程写子进程读多条管道)
4、一对多(父进程写子进程读两条管道)
六、自定义结构体
1、结构体定义
2、结构体元素含义
七、自定义函数
1、TwoPipeOpen
八、Linux测试匿名管道实现消息队列
1、测试Demo
(1)TestTwoPipeReceive.c
(2)TestTwoPipeSend.c
2、编译
3、运行效果
(1)主进程日志
(2)子进程日志
一、环境
名称 | 值 |
CPU | Intel(R) Core(TM) i5-1035G1 CPU @ 1.00GHz |
操作系统 | CentOS Linux release 7.9.2009 (Core) |
内存 | 3G |
逻辑核数 | 2 |
二、介绍
管道是Unix系统进程间通信的最古老方式,所有Unix系统都提供此种通信机制。但管道有以下局限性。
编号 | 描述 |
1 | 管道是半双工的(数据只能在一个方向上流动),虽然某些系统支持全双工管道,但为了程序的移植性,我们还是使用所有系统都支持的半双工管道。 |
2 | 管道只能在父子进程间使用。例如:父进程创建管道,fork子进程,父子进程各自关闭不需要的管道,就可以使用管道了,之后可以根据实际需求是否执行exec系列函数。 |
管道使用时需小心的几种情况:
情况 | 描述 |
1 | 管道的写端都已经关闭,但有进程继续从管道的读端读取数据,在其把管道内的数据全部读取完毕之后,fgets便会返回NULL,我们可以用feof来判断是否读取到结尾。 |
2 | 管道的写端没有全部关闭,也就是指其的引用计数大于0,并且没有继续往管道内写入数据,而管道的读端在继续读数据,当数据被全部读取完毕之后,读操作就会被阻塞。(深有体会,默默流下两行泪。) |
3 | 管道的读端都已经关闭,但有进程继续往管道写端写入数据,则会导致此进程收到SIGPIPE信号,之后进程便异常结束。 |
4 | 管道的读端没有全部关闭,也就是指其的引用计数大于0,也没有从管道内读取数据,而有进程往管道写端写入数据,当管道被写满后,写操作便会被阻塞。 |
三、C标准函数介绍
1、pipe
名称 | 描述 |
声明 | int pipe(int fildes[2]); |
作用 | 创建管道。 |
头文件 | #include <unistd.h> |
返回值 | 成功返回0。错误返回-1。 |
参数 | 1、fd:函数返回的两个文件描述符,0号索引位为读而打开,1号索引位为写而打开。 |
2、popen
名称 | 描述 |
声明 | FILE *popen(const char *command, const char *type); |
作用 | 创建一个管道连接子进程command, 如果type是r,则子进程的标准输出是管道的写入端,主进程读取端。 如果type是w,则子进程的标准输入是管道的读取端,主进程写入端。 |
头文件 | #include <stdio.h> |
返回值 | 成功返回文件指针。错误返回NULL。 |
参数 | 1、command:创建子进程之后,执行的命令。 2、type:以什么方式创建管道。 |
3、pclose
名称 | 描述 |
声明 | int pclose(FILE *stream); |
作用 | 关闭管道并且回收子进程资源。 |
头文件 | #include <stdio.h> |
返回值 | 成功返回command的终止状态。错误返回-1。 |
参数 | 1、stream:需要关闭的管道。 |
4、注意
大家在引用了头文件stdio.h之后,可能还是调用不了popen和pclose函数,需要我们添加宏#define _GNU_SOURCE,之前也是看了半天才找到的,大家避免踩这个坑。
四、宏
宏 | 默认值 | 描述 |
PIPE_BUF | 4096 | 原子写入管道中的字节数。 |
多进程写管道时,每次写的内容小于PIPE_BUF,可以保证原子的数据写入,不会出现数据交叉的问题。
五、常见的管道用法
我们通常会直接调用popen,因为省心,已经帮我们封装好了,它可以帮我们实现如下架构。
1、一对一(父进程读子进程写一条管道)
2、一对一(父进程写子进程读一条管道)
这个图我就不画了,大家脑补一下,其实大差不多。
3、一对多(父进程写子进程读多条管道)
我这边只画出了几种可以用popen实现的架构,还有其他一些的就不一一枚举了,但仔细想想popen是有以下几点局限性:
序号 | 描述 |
1 | popen一次只能创建一个子进程,如果我们想要用管道实现消息队列,popen是不支持我们的想法的,消息队列一般是需要一个写端发送消息,多个读端读取消息。 |
2 | popen创建子进程之后,只能与之建立一个半双工管道,如果说我们以写打开管道,发送消息给子进程,如何保证子进程接收到父进程的消息,我们需要两条管道来完成。 |
4、一对多(父进程写子进程读两条管道)
由此我们需要一个新的popen,它支持如下功能:
序号 | 描述 |
1 | 创建一个子进程之后,建立两条管道一条写一条读,来维持父子进程之间的相互通信。 |
2 | 创建多个子进程,父子进程间通过一读一写两条管道通信。 |
下面我们来看一下如何实现一个这样的架构呢。
六、自定义结构体
1、结构体定义
typedef struct PipeSt
{
SqQueue *PidQ;
SqQueue *ExitStatusQ;
QueueLenType ChildProcNums;
PipeLenT PipeR2W[PIPE_ARRAY_LEN];
PipeLenT PipeW2R[PIPE_ARRAY_LEN];
FILE *ReadPipe;
FILE *WritePipe;
CopyStr *ReadStr;
CopyStr *WriteStr;
}PipeSt;
2、结构体元素含义
名称 | 描述 |
PidQ | 队列,存放申请的进程Pid。 |
ExitStatusQ | 队列,进程的退出状态,和PidQ一一对应。 |
ChildProcNums | 子进程数。 |
PipeR2W | 主进程读,子进程写。 |
PipeW2R | 主进程写,子进程读。 |
ReadPipe | 主进程读管道。 |
WritePipe | 主进程写管道。 |
ReadStr | 主进程读取的内容。 |
WriteStr | 主进程写入的内容。 |
七、自定义函数
1、TwoPipeOpen
Status TwoPipeOpen(const char *Cmd, PipeSt* St)
{
JudgeAllNullPointer(Cmd);
JudgeAllNullPointer(St);
if (CreatePipe(St->PipeR2W) != SuccessFlag)
{
LogFormat(Error,"TwoPipeOpen : Fail.\n");
return FailFlag;
}
if (CreatePipe(St->PipeW2R) != SuccessFlag)
{
LogFormat(Error,"TwoPipeOpen : Fail.\n");
return FailFlag;
}
fflush(stdout);
pid_t Pid = 0;
while (St->PidQ->SqQueueLen != St->ChildProcNums)
{
if (MyFork(&Pid) == FailFlag)
{
LogFormat(Error,"TwoPipeOpen : Fail.\n");
return FailFlag;
}
fflush(stdout);
if (Pid == 0)
{
close(St->PipeR2W[PIPE_ARRAY_READ_INDEX]);
if (St->PipeR2W[PIPE_ARRAY_WRITE_INDEX] != STDOUT_FILENO)
{
if (dup2(St->PipeR2W[PIPE_ARRAY_WRITE_INDEX],STDOUT_FILENO) == -1)
{
perror("dup2");
exit(ExceptionExitFlag);
}
close(St->PipeR2W[PIPE_ARRAY_WRITE_INDEX]);
}
close(St->PipeW2R[PIPE_ARRAY_WRITE_INDEX]);
if (St->PipeW2R[PIPE_ARRAY_READ_INDEX] != STDIN_FILENO)
{
if (dup2(St->PipeW2R[PIPE_ARRAY_READ_INDEX],STDIN_FILENO) == -1)
{
perror("dup2");
exit(ExceptionExitFlag);
}
close(St->PipeW2R[PIPE_ARRAY_READ_INDEX]);
}
execl("/bin/sh", "sh", "-c", Cmd, (char*)0);
exit(ExceptionExitFlag);
}
EnterSqQueue(St->PidQ,&Pid);
}
close(St->PipeR2W[PIPE_ARRAY_WRITE_INDEX]);
if ((St->ReadPipe = fdopen(St->PipeR2W[PIPE_ARRAY_READ_INDEX],READ_FILE_FLAG)) == NULL)
{
LogFormat(Error,"TwoPipeOpen : Fail.\n");
return FailFlag;
}
close(St->PipeW2R[PIPE_ARRAY_READ_INDEX]);
if ((St->WritePipe = fdopen(St->PipeW2R[PIPE_ARRAY_WRITE_INDEX],WRITE_FILE_FLAG)) == NULL)
{
LogFormat(Error,"TwoPipeOpen : Fail.\n");
return FailFlag;
}
LogFormat(Debug,"TwoPipeOpen : OK, Cmd : %s\n",Cmd);
return SuccessFlag;
}
名称 | 描述 |
声明 | Status TwoPipeOpen(const char *Cmd, PipeSt* St); |
作用 | 1.场景一:启动一个子进程,并创建两条管道连接子进程Cmd,一条是读,一条是写。 2.场景二:启动多个子进程,并创建两条管道连接子进程Cmd,一条是读,一条是写。管道相当于是一个队列。 |
头文件 | #include "MyPipe.h" |
返回值 | 1.SuccessFlag : 成功。 2.FailFlag : 失败。 |
参数 | 1.Cmd : 调用的子进程命令。 2.St : PipeSt结构体二级指针。 |
八、Linux测试匿名管道实现消息队列
1、测试Demo
(1)TestTwoPipeReceive.c
#include "MyPipe.h"
#include "FileOperate.h"
#define TASK_REC_SUCCESS "REC_SUCCESS"
#define TASK_REC_SUCCESS_LEN 11
Status main()
{
InitGlobalLogModle("./Log.txt",APPEND_PLUS_FILE_FLAG,WRITE_LOG_FLAG,NO_PRINT_LOG_FLAG);
CopyStr *ReadStr = NULL;
CopyStr *WriteStr = NULL;
InitCopyStrDefLen(&ReadStr,PIPE_BUF);
InitCopyStrDefLen(&WriteStr,PIPE_BUF);
while (1)
{
if (ReadPipe(ReadStr,CHILD_PROCESS_READ_PIPE) != SuccessFlag)
{
break;
}
ExecCopyStr(WriteStr,TASK_REC_SUCCESS);
WritePipe(WriteStr, CHILD_PROCESS_WRITE_PIPE);
}
DestroyCopyStr(&ReadStr);
DestroyCopyStr(&WriteStr);
DestroyGlobalLogModle();
return SuccessFlag;
}
(2)TestTwoPipeSend.c
#include "MyPipe.h"
#include "FileOperate.h"
#define CHILD_PROC_NAME "/opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Process/TestTwoPipeReceive"
#define TEST_DATA_NUMS 100
#define TEST_DATA_LEN 30
#define TEST_CHILD_PROC 8
#define TASK_REC_SUCCESS "REC_SUCCESS"
#define TASK_REC_SUCCESS_LEN 11
Status main()
{
PipeSt *MyPipe = NULL;
char TestData[TEST_DATA_NUMS][TEST_DATA_LEN];
QueueLenType i;
for (i = 0; i < TEST_DATA_NUMS; i++)
{
sprintf(TestData[i],"%lld",i);
}
InitPipeSt(&MyPipe, TEST_CHILD_PROC);
TwoPipeOpen(CHILD_PROC_NAME,MyPipe);
i = 0;
while (i < TEST_DATA_NUMS)
{
ExecCopyStr(MyPipe->WriteStr,TestData[i]);
if (WritePipe(MyPipe->WriteStr, MyPipe->WritePipe) == FailFlag)
{
return FailFlag;
}
i++;
if (ReadPipe(MyPipe->ReadStr,MyPipe->ReadPipe) == FailFlag)
{
return FailFlag;
}
}
TwoPipeClose(MyPipe);
DestroyPipeSt(&MyPipe);
return SuccessFlag;
}
2、编译
[gbase@czg2 Process]$ make
gcc -Wall -Wextra -O3 -std=gnu11 TestTwoPipeSend.c -o TestTwoPipeSend -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/Log/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/FileOperate/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Process/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/DataConvertion/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/SqQueue/ -L /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Make/Libs/ -L /usr/lib64/ -l PublicFunction -l Log -l FileOperate -l Process -l DataConvertion -l SqQueue
gcc -Wall -Wextra -O3 -std=gnu11 TestTwoPipeReceive.c -o TestTwoPipeReceive -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/Log/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/FileOperate/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Process/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/DataConvertion/ -I /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/SqQueue/ -L /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Make/Libs/ -L /usr/lib64/ -l PublicFunction -l Log -l FileOperate -l Process -l DataConvertion -l SqQueue
3、运行效果
主进程开启8个子进程,向管道中写入0-99一百条数据,8个子进程总共取到0-99一百条数据,没有重复消费数据。
(1)主进程日志
[gbase@czg2 Process]$ ./TestTwoPipeSend
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Init SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Init SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-InitPipeSt : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-CreatePipe : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-CreatePipe : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11325.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11326.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11327.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11328.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11329.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11330.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11331.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyFork : OK, Pid : 11332.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-TwoPipeOpen : OK, Cmd : /opt/Developer/ComputerLanguageStudy/C/DataStructureTestSrc/PublicFunction/Process/TestTwoPipeReceive
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 0
2024-01-29 16:19:37-P[11327]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 1
2024-01-29 16:19:37-P[11330]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 2
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 3
2024-01-29 16:19:37-P[11331]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 4
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 5
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 6
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 7
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 8
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 9
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 10
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 11
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 12
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 13
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 14
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 15
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 16
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 17
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 18
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 19
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 20
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 21
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 22
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 23
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 24
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 25
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 26
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 27
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 28
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 29
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 30
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 31
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 32
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 33
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 34
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 35
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 36
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 37
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 38
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 39
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 40
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 41
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 42
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 43
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 44
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 45
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 46
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 47
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 48
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 49
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 50
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 51
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 52
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 53
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 54
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 55
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 56
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 57
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 58
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 59
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 60
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 61
2024-01-29 16:19:37-P[11332]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 62
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 63
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 64
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 65
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 66
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 67
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 68
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 69
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 70
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 71
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 72
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 73
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 74
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 75
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 76
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 77
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 78
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 79
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 80
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 81
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 82
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 83
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 84
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 85
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 86
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 87
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 88
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 89
2024-01-29 16:19:37-P[11326]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 90
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 91
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 92
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 93
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 94
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 95
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 96
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 97
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 98
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-WritePipe : OK, Data Content : 99
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ReadPipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11328]-T[0]-[Debug]-MyFork : OK, Pid : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11325, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11325.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11326, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11326.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11327, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11327.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11328, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11328.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11329, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11329.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11330, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11330.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11331, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11331.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Read SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-ChkProcExitStatus : OK, Normal Termination, Pid : 11332, Exit Status : 0.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-MyWaitPid : OK, RetPid : 11332.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Enter SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-TwoPipeClose : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Destroy SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-Destroy SqQueue : OK.
2024-01-29 16:19:37-P[11324]-T[0]-[Debug]-DestroyPipeSt : OK.
(2)子进程日志
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 0
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 1
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 2
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 3
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 4
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 5
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 6
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 7
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 8
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 9
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 10
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 11
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 12
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 13
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 14
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 15
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 16
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 17
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 18
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 19
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 20
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 21
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 22
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 23
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 24
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 25
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 26
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 27
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 28
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 29
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 30
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 31
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 32
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 33
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 34
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 35
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 36
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 37
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 38
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 39
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 40
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 41
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 42
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 43
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 44
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 45
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 46
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 47
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 48
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11330]-T[0]-[Debug]-ReadPipe : OK, Data Content : 49
2024-01-29 16:19:37-P[11330]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 50
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 51
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 52
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 53
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 54
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 55
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 56
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 57
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 58
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 59
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 60
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 61
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 62
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 63
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 64
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 65
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 66
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 67
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 68
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 69
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 70
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 71
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 72
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 73
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 74
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 75
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 76
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 77
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 78
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 79
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 80
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 81
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 82
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 83
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 84
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 85
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 86
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 87
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 88
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11327]-T[0]-[Debug]-ReadPipe : OK, Data Content : 89
2024-01-29 16:19:37-P[11327]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 90
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 91
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 92
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 93
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 94
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 95
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 96
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 97
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, Data Content : 98
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, Data Content : 99
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-WritePipe : OK, Data Content : REC_SUCCESS
2024-01-29 16:19:37-P[11327]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11332]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11329]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11325]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11330]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11331]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11326]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''
2024-01-29 16:19:37-P[11328]-T[0]-[Debug]-ReadPipe : OK, The Pipe Read Ends, Data Content : ''