如何从C中的管道读取结构(Windows)

时间:2013-11-07 17:34:41

标签: c windows process operating-system pipe

我将子进程的标准输入更改为管道的读取句柄。我在parent.c文件中创建了两端的管道,并使用管道的读取句柄更新了子进程的标准输入,如si.hStdInput = hReadPipe;

我正在尝试将此结构写入管道:

struct textShift{
   char* text;
   int shift;
};

以下是父进程写入管道的方式:

while(1)
{
    printf("Please enter your message:");
    gets(ts.text);
    printf("Please enter shift number:");
    scanf("%d",&ts.shift);
    bytesToWrite = strlen(ts.text)+1; 
    WriteFile(hWritePipe[0], &ts, bytesToWrite, &bytesWritten,NULL); 
    printf("number of bytes: %d\n number of bytes successfully sent: %d",bytesToWrite, bytesWritten);
    printf("%s", ts.text);
}

但是我不知道如何在我的子进程中阅读此结构。对于字符串,我在子进程文件中使用getchar:

int main()

{
char message[100];
int i;
while(1)
{
    for(i=0; (message[i]=getchar())!=0; i++){}

    printf("message from parent: %s", message);

}

system("pause");
return 0;
}

如何在子进程中从管道获取此结构?

0 个答案:

没有答案