Unix环境高级编程-学习-04-匿名管道PIPE

目录

一、环境

二、介绍

三、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)子进程日志


一、环境

名称
CPUIntel(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_BUF4096原子写入管道中的字节数。

多进程写管道时,每次写的内容小于PIPE_BUF,可以保证原子的数据写入,不会出现数据交叉的问题。

五、常见的管道用法

我们通常会直接调用popen,因为省心,已经帮我们封装好了,它可以帮我们实现如下架构。

1、一对一(父进程读子进程写一条管道)

c3b753c6566b48d3a13d74ce75173a7b.png

2、一对一(父进程写子进程读一条管道)

这个图我就不画了,大家脑补一下,其实大差不多。

3、一对多(父进程写子进程读多条管道)

82e4df7ba6f64fcf846ac7d233061a91.png

我这边只画出了几种可以用popen实现的架构,还有其他一些的就不一一枚举了,但仔细想想popen是有以下几点局限性:

序号描述
1popen一次只能创建一个子进程,如果我们想要用管道实现消息队列,popen是不支持我们的想法的,消息队列一般是需要一个写端发送消息,多个读端读取消息,消息存放在一个队列(管道)中。
2popen创建子进程之后,只能与之建立一个半双工管道,如果说我们以写打开管道,发送消息给子进程,如何保证子进程接收到父进程的消息,我们需要两条管道来完成。

 4、一对多(父进程写子进程读两条管道)

ed0a1c36ca214da383bf1ebd27a4473c.png

由此我们需要一个新的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     11Status 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     11Status 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 : ''

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/657111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

leetcode—跳跃游戏—贪心算法

1 跳跃游戏1 给你一个非负整数数组 nums &#xff0c;你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标&#xff0c;如果可以&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 示例 1&a…

vue-computed 计算属性

一、computed 计算属性 在Vue应用中&#xff0c;在模板中双向绑定一些数据或者表达式&#xff0c;但是表达式如果过长&#xff0c;或者逻辑更为复杂 时&#xff0c;就会变得臃肿甚至难以维护和阅读&#xff0c;例如&#xff1a; <div>写在双括号中的表达式太长了,不利于阅…

Linux 入门基础知识(一)—— Linux的基本使用

Linux 入门基础知识 一、Linux的基本使用和配置1.1、终端1.2、消耗内存1.3、运行级别1.6、登录前欢迎语1.5、登录后欢迎语1.6、shell1.7、ps aux1.8、设置主机名1.9、whoami和who am i1.10、命令提示符 二、Linux执行命令的过程详解和命令类型2.1、命令执行2.2、hash缓存表2.3、…

张维迎《博弈与社会》纳什均衡与囚徒困境博弈(2)囚徒困境博弈

囚徒困境大家应该都比较熟悉了&#xff0c;我觉得这篇的意义大概在与&#xff0c;经济学术语的运用&#xff1f; 囚徒困境&#xff1a;个人理性与集体理性的矛盾 假定有两个犯罪嫌疑人共同作案。警察抓住他们以后&#xff0c;分开拘押&#xff0c;并告诉他们&#xff1a;可以选…

Chiplet,汽车“芯”风向

异构集成、高速互联、算力灵活可扩展正在成为新一轮汽车芯片竞争的焦点。尤其是随着以ChatGPT为代表的大数据、大模型产品在车端的落地&#xff0c;对于芯片的要求还在持续提升。 本周&#xff0c;12家日本汽车制造商&#xff08;包括丰田、日产、本田等&#xff09;、零部件制…

设计与实现基于Java+MySQL的考勤发布-签到系统

课题背景 随着现代经济的迅速发展&#xff0c;电子考勤签到服务已经渗透到人们生活的方方面面&#xff0c;成为不可或缺的一项服务。在这个背景下&#xff0c;线上签到作为考勤签到的一种创新形式&#xff0c;为用户提供了便捷的操作方式&#xff0c;使得任务签到、个人签到记…

代码随想录算法训练营第35天 | 860.柠檬水找零 406.根据身高重建队列 452.用最少数量的箭引爆气球

柠檬水找零 局部最优&#xff1a;收到20元时优先找零10元5元&#xff0c;不够再找零3个5元&#xff0c;因为5元可以找零20和10&#xff0c;更有用。全局最优&#xff1a;完成所有的找零。 class Solution { public:bool lemonadeChange(vector<int>& bills) {int fi…

c++的发展史、缺省参数、命名空间你了解吗?

1.c的发展历史概述 1.1.什么是c C语言是结构化和模块化的语言&#xff0c;适合处理较小规模的程序。对于复杂的问题&#xff0c;规模较大的 程序&#xff0c;需要高度的抽象和建模时&#xff0c;C语言则不合适。为了解决软件危机&#xff0c; 20世纪80年代&#xff0c; 计算机…

TypeScript实战系列之强力爆破泛型的困扰

目录 介绍开始如何理解泛型语法泛型约束泛型默认值练习后续 介绍 泛型在typescript 中使用频率相当高&#xff0c;也给了初学者相当大的阻碍。希望这一篇文章&#xff0c;能帮助你们爆破它。 开始 下面通过模拟实现一个简易版本的axios来引入泛型的使用 // axios.ts type M…

如何在centos7上配置为桥接模式

一、打开虚拟机的设置页面&#xff0c;设置虚拟机桥接模式如图&#xff1a;选择桥接模式&#xff08;复制物理网络连接可选&#xff09; 二、net0对应桥接模式的配置&#xff0c;如下方式选择 三、 在 CentOS 7 中&#xff0c;通过编辑网络配置文件来配置网络参数。找到 /etc…

(九)springboot实战——springboot3下的webflux项目参数验证及其全局参数验证异常处理

前言 在上一节内容中&#xff0c;我们介绍了如何在webflux项目中自定义实现一个全局的异常处理器ErrorWebExceptionHandler&#xff0c;正常情况下其可以处理我们系统的运行时异常&#xff0c;但是无法处理参数验证的异常WebExchangeBindException&#xff0c;所以这里提供另外…

算法随想录第四十八天打卡| 198.打家劫舍 , 213.打家劫舍II , 337.打家劫舍III

详细布置 今天就是打家劫舍的一天&#xff0c;这个系列不算难&#xff0c;大家可以一口气拿下。 198.打家劫舍 视频讲解&#xff1a;动态规划&#xff0c;偷不偷这个房间呢&#xff1f;| LeetCode&#xff1a;198.打家劫舍_哔哩哔哩_bilibili 代码随想录 class Solution(…

STM32 E18-D80NK红外避障传感器

E18-D80NK-N是一款红外光电传感器&#xff0c;它同时具备发射和接收功能。通过对发射光进行调制后发出&#xff0c;并通过接收头对反射光进行解调输出。 E18-D80NK-N采用了透镜来增强传感器的性能&#xff0c;使其能够检测更远的距离。根据红外光的特性&#xff0c;不同颜色的…

拒掉了一个双 985 的面试者

下班路上&#xff0c;和一个大佬聊天&#xff0c;他说今天面试&#xff0c;拒掉了一个双 985 的候选人。 候选人背景很好&#xff0c;本科和硕士都是 985 院校毕业&#xff0c;并且是除了清北浙之外&#xff0c;排名非常靠前的 985院校。 本硕专业都是计算机专业&#xff0c;…

Spring Boot + security + jwt 测试安全策略

一、测试概述 主要目的是测试security的用法。因测试搭建mysql和redis比较麻烦&#xff0c;所以我这里将自定义的jwt和用户信息缓存到程序的内存中。 本人测试的项目比较混乱&#xff0c;Spring Boot父类只标出有用的依赖。其子类用的版本为jdk11。后续会继续深入oauth2&#x…

数据库之TiDB基础讲解

文章目录 1 TiDB1.1 引言1.2 TiDB介绍1.3 系统架构1.3.1 TIDB Server1.3.2 PD Server1.3.3 TIKV Server1.3.4 TiKV如何不丢失数据1.3.5 分布式事务支持 1.4 与MySQL的对比1.5 性能测试1.5.1 测试一1.5.2 系统测试报告 2 1 TiDB 1.1 引言 当我们使用 Mysql 数据库到达一定量级…

调试小结:PHY初始化前后Link Status是否能正确反应网线插上、拔下状态

1 说明 为了验证是否需要初始化PHY才能检测到网线插上、拔下&#xff0c;这里我们对比初始化PHY&#xff08;LAN8720&#xff09;前后&#xff0c;插拔网线PHY寄存器1的bit2的是否按照预期变化来进行测试。 我们查看的PHY寄存器是1的bit2&#xff0c;定义如下&#xff1a; 2…

springboot的actuator

1、actuator简介 微服务的特点决定了功能模块的部署是分布式的&#xff0c;大部分功能模块都是运行在不同的机器上&#xff0c;彼此通过服务调用进行交互&#xff0c;前后台的业务流会经过很多个微服务的处理和传递&#xff0c;出现了异常如何快速定位是哪个环节出现了问题&am…

STM32 CAN接口中断处理与性能优化技巧

在基于STM32的CAN接口中&#xff0c;中断处理是一个非常重要的部分&#xff0c;它可以帮助我们实时地处理接收到的数据和处理其他CAN事件。为了优化CAN接口的性能&#xff0c;以下是一些中断处理和性能优化的技巧&#xff1a; ✅作者简介&#xff1a;热爱科研的嵌入式开发者&am…

系统架构19 - 面向对象

面向对象设计 相关概念面向对象分析基本步骤基本原则分析模型 面向对象设计设计模型类的类型 面向对象编程基本特点需求建模设计原则面向对象软件测试 相关概念 接口&#xff1a;描述对操作规范的说明&#xff0c;其只说明操作应该做什么&#xff0c;并没有定义操作如何做。消…