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     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 : ''

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

代码随想录算法训练营DAY6 | 哈希表(1)

DAY5休息一天&#xff0c;今天重启~ 哈希表理论基础&#xff1a;代码随想录 Java hash实现 &#xff1a;java 哈希表-CSDN博客 一、LeetCode 242 有效的字母异位词 题目链接&#xff1a;242.有效的字母异位词 思路&#xff1a;设置字典 class Solution {public boolean isAnag…

微搭低代码从入门到精通02数据源的介绍

目录 1 数据源的功能组成2 在低码编辑器中调用数据源的能力3 视频讲解 一款低代码产品好不好用&#xff0c;数据建模的能力是一个重要的衡量指标。因为灵活的定义表之间的关系&#xff0c;自由的选择字段的类型&#xff0c;尤其在我们依据模型自动生成页面的时候是比较重要的。…

Windows Server 2025 LTSC 预览版来了

Windows Server 2025 LTSC 预览版来了 1. 安装 Windows Server 2025 LTSC 预览版2. 安装 VMware Tools3. Windows Server 2025 LTSC 预览版4. Windows Server 2025 LTSC 预览版下载地址 1. 安装 Windows Server 2025 LTSC 预览版 使用 VMware Workstation 安装&#xff0c; 安…

JVM实战(30)——模拟堆内存溢出

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 学习必须往深处挖&…

JVM内存调优常用参数

视频讲解地址 文章目录 一、开始二、常用命令1、原生命令2、arthas命令 三、Parallel四、G1 相关参数五、通用参数六、JVM调优参数 一、开始 查看当前JDK版本所支持的垃圾回收器有哪些、以及默认使用的回收器 java -XX:PrintFlagsFinal -version | grep -E \<Use.*GC\>J…

类和对象(2)之类的6个默认成员函数(2)

上次我们梳理了初始化和清理的知识点&#xff0c;今天我们要梳理的是拷贝赋值的知识点。 拷贝构造函数 看到拷贝构造函数这个名字就能看的出来它是一个构造函数&#xff0c;所以它的语法和构造函数很相似。 既然他是一个构造函数&#xff0c;那么他就具有构造函数的语法&…

前端颜料盘??

前端颜料盘&#xff1f;&#xff1f; 一、原生颜料盘 <input type"color" placeholder"选择颜色">二、第三方开源库 Pickr&#xff1a; GitHub: https://github.com/Simonwep/pickr官方网站: https://simonwep.github.io/pickr/Pickr 是一个轻量级…

Windows Server 2003 Web服务器搭建

系列文章目录 目录 系列文章目录 前言 一、Web服务器是什么&#xff1f; 二、配置服务器 1.实验环境搭建 2.服务器搭建 1)控制面板中找到增加或删除程序打开 2)点击增加程序 3)安装Web服务器 4)查看安装是否成功 5)打开Internet信息服务(IIS)管理器,进行配置 6)找…

Java 字符串 07 练习-手机号屏蔽、身份证号信息查看,游戏骂人敏感词替换

注意点&#xff1a;只有返回值才是被截取的小串&#xff0c;所以需要有一个变量去承接它&#xff1b; 自己写的代码&#xff1a; import java.util.Scanner; public class practice {public static void main(String[] args) {Scanner input new Scanner(System.in);String …

离散数学4

谓词公式与量词的辖域 谓词逻辑中量词的符号化 例3&#xff0c;没有人不犯错误&#xff0c;可以理解为&#xff0c;有人不犯错误&#xff0c;用存在量词&#xff0c;因为用的是存在量词&#xff0c;就用合取 可以分步理解&#xff0c; 所有大学生都喜欢歌星&#xff1a; 所有…

HTML实战

HTML实战 标题 标题排版 img标签路径书写的两种方式&#xff1a; 绝对路径 绝对磁盘路径&#xff1a;C:\User…绝对网络路径&#xff1a;https://i2.sinaimg.cn/dy/deco/2012/0613/yocc20120613img01/news_logo.png 相对路径 ./ : 当前目录 ../ &#xff1a; 上一级目录宽…

ARL灯塔vps云服务器安装

前提是vps服务器已经安装好docker 1、下载压缩包到本地 2、解除不能扫描edu等域名的限制 解压docker_arl.zip&#xff0c;打开docker_arl/config-docker.yaml文件 删除掉edu.cn等限制域名(图中已删除) 3、上传至vps云服务器 将docker_arl文件上传到云服务器opt目录下 这里我…

仅使用 Python 创建的 Web 应用程序(前端版本)第08章_商品详细

在本章中,我们将实现一个产品详细信息页面。 完成后的图像如下。 Model、MockDB、Service都是在产品列表页实现的,所以创建步骤如下。 No分类内容1Page定义PageId并创建继承自BasePage的页面类2Application将页面 ID 和页面类对添加到 MultiPageApp 的页面中Page:定义PageI…

12种相关系数汇总,别再以为只有皮尔逊了!

所谓相关关系是指2个或2个以上变量取值之间在某种意义下所存在的规律&#xff0c;其目的在于探索数据集所存在隐藏的关系网&#xff0c;在19世纪80年代&#xff0c;Galton通过研究人类身高遗传问题首次提出了相关的概念&#xff0c;文中指出相关关系可以定义为&#xff1a;一个…

PGsql 解析json及json数组

创建测试数据 drop table if exists json_test; create table json_test as select 111 as id, {"nodes":{"1692328028076":{"nodeId":"1692328028076","nodeName":"测试表1","nodeType":"DATACO…

报错“MySql配置文件已损坏,请联系技术支持”的解决方法

目录 第一步 打开控制面板&#xff0c;选择管理工具&#xff0c;再选择事件查看器 第二步 在【应用程序】里找到这条报错&#xff0c;记下来文件内容。我自己的来源是“MsiInstaller” 第三步 winR组合键&#xff0c;输入regedit打开注册表 第四步 根据前面报错的文件名定位…

【网页设计期末】咖啡商城网页代码

本文资源&#xff1a;咖啡商城网页代码htmlCSSJavaScript_前端-CSDN问答 1.题目要求 用HTMLCSSJavaScript创建网站项目 说明:制作首页、登录页、列表页。要求: 1、首页页面结构:logo&#xff0c;导航&#xff0c;轮播&#xff0c;商品列表(九宫格结构&#xff0c; 每一格均含图…

如何过有「松弛感」的生活?

最近网上有一个词很流行&#xff0c;叫做「松弛感」。最早的出处似乎是这么一条微博&#xff1a;博主见到一家人出门旅游&#xff0c;行李全部被退回&#xff0c;空手抵达目的地&#xff0c;竟然没人紧张和生气&#xff0c;而是重新安排好行李后继续开心聊天&#xff0c;全程非…

Vue3使用setup-extend简化组件名写法

如果我们在Vue3中要使用setup的语法糖&#xff0c;就需要使用两个script标签&#xff0c;一个用于设置组件的name属性&#xff0c;一个用于编写setup中的代码。如下&#xff1a; 但是我们有觉得光是因为一个name属性就多写一个script标签有点麻烦了。 因此我们可以使用插件来进…

会话技术复习笔记

一.登录校验的需求 什么是登录校验&#xff1f; 所谓登录校验&#xff0c;指的是我们在服务器端接收到浏览器发送过来的请求之后&#xff0c;首先我们要对请求进行校验。先要校验一下用户登录了没有&#xff0c;如果用户已经登录了&#xff0c;就直接执行对应的业务操作就可以…