1

私はこのような簡単なプログラムを書きました..

#include<stdio.h>
int main()
{
    int i=0;
    while(1)
        printf("......%d...\n",i++);
    return 0;

}

このプロセスが Windows で実行されると、クライアントのように動作し、サーバーは Csrss.exe になります。ここで私の質問は、このクライアントが何かを印刷しようとすると、サーバーに要求を送信し、印刷に関するその後のプロセスはサーバー (Csrss.exe) によって行われるということです。しかし、クライアントはどうなるでしょうか? クライアントプロセスは、値が実際に出力されるかどうかを気にせずに実行を継続しますか? または、サーバーは、システム空間から何らかの通知を受け取るまでクライアントをブロックしますか??

2 番目のソリューションを使用する場合は、MSDN に、CreateProcess() を使用した後、WaitForInputIdle() API を使用して、オブジェクトが実際にシステム スペースに作成されていることを確認する必要があることも説明してください。したがって、このステートメントから得られるのは、サーバーはリクエストを行った後にクライアントをブロックしないということです..

そして、最初のソリューションを使用している場合、プログラムの出力は正しいです。つまり、 i の値が1つも見逃されていないということです??

4

1 に答える 1