pollpipe.c

来自「unix环境高级编程的源代码」· C语言 代码 · 共 31 行

C
31
字号
#include    <sys/types.h>
#include    <poll.h>
#include    <stdio.h>
#include    <stdlib.h>
#include    <stropts.h>
#include    <unistd.h>
#include    "ourhdr.h"

int
main(void)
{
    int                i, n, fd[2];
    struct pollfd    fdarr[1];

    if (pipe(fd) < 0)
        err_sys("pipe error");

    for (n = 0; ; n++) {
        fdarr[0].fd = fd[1];
        fdarr[0].events = POLLOUT;
        if ( (i = poll(fdarr, 1, 0)) < 0)
            err_sys("poll error");
        else if (i == 0)
            break;
        if (write(fd[1], "a", 1) != 1)
            err_sys("write error");
    }
    printf("pipe capacity = %d\n", n);
    exit(0);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?