zoukankan      html  css  js  c++  java
  • 管道的字节流特性

    #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;
    }
  • 相关阅读:
    SpringMVC+Huploadify 实现文件上传下载
    删除代码中的注释
    shiro框架学习(二)
    shiro框架学习(三)
    shiro框架学习(一)
    数据库操作导入导出以及加快查询速度
    判断字符串中是否是数字
    分数判断
    异常处理的课后
    多态的课后总结
  • 原文地址:https://www.cnblogs.com/donggongdechen/p/15010241.html
Copyright © 2011-2022 走看看