• 管道的字节流特性


    #include <stdio.h>
    #include <sys/wait.h>
    #include <unistd.h>
    #include <string.h>
    
    #define BUF_SIZE 10
    
    int main(int argc, char *argv[]) {
        int pfd[2];
        char buf[BUF_SIZE];
        ssize_t numRead;
    
        if(argc != 2 || strcmp(argv[1], "--help") == 0) {
            printf("%s string
    ", argv[0]);
            return -1;
        }
    
        if(pipe(pfd) == -1) {
            fprintf(stderr, "pipe error.");
            return -1;
        }
    
        switch(fork()) {
        case -1:
            fprintf(stderr, "fork() error.");
            break;
        case 0:
            if(close(pfd[1]) == -1) {
                fprintf(stderr, "close error.");
                return -1;
            }
            for(;;) {
                numRead = read(pfd[0], buf, BUF_SIZE);
                if(numRead == -1) {
                    fprintf(stderr, "read error.");
                    return -1;
                }
                if(numRead == 0) {
                    break;
                }
                if(write(STDOUT_FILENO, buf, numRead) != numRead) {
                    fprintf(stderr, "write error");
                    return -1;
                }
            }
            write(STDOUT_FILENO, "
    ", 1);
            if(close(pfd[0]) == -1) {
                fprintf(stderr, "close error");
                return -1;
            }
            break;
        default:
            if(close(pfd[0]) == -1) {
                fprintf(stderr, "close error.");
                return -1;
            }
            if(write(pfd[1], argv[1], strlen(argv[1])) != strlen(argv[1])) {
                fprintf(stderr, "write error.");
                return -1;
            }
            if(close(pfd[1]) == -1) {
                fprintf(stderr, "close error.");
                return -1;
            }
            wait(NULL);
            break;
        }
        return 0;
    }
  • 相关阅读:
    算符优先分析
    自下而上语法分析
    递归下降语法分析
    LL(1)文法的判断,递归下降分析程序
    消除左递归
    4.K均值算法--应用
    2.机器学习相关数学基础
    K均值算法
    机器学习概述
    算符优先分析
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/15010241.html
Copyright © 2020-2023  润新知