• 管道相关函数(1)-pipe


    定义:

    int pipe(int filedes[2]);

     

    表头文件:

    #include<unistd.h>

     

    说明:

    pipe()会建立管道, 并将文件描述词由参数filedes数组返回。filedes[0]为管道里的读取端, filedes[1]则为管道的写入端。

     

    返回值:

    若成功则返回零, 否则返回-1, 错误原因存于errno中。

     

    相关函数:

    mkfifo, popen, read, write, fork

     

    错误代码:

    EMFILE 进程已用完文件描述词最大量。

    ENFILE 系统已无文件描述词可用。

    EFAULT 参数filedes数组地址不合法。

     

    示例:

     

    #include <stdlib.h>
    #include <unistd.h>
    #define MAXLINE 80
    int main(void)
    {
        int n;
        int fd[2];
        pid_t pid;
        char line[MAXLINE];
        if (pipe(fd) < 0) {
            perror("pipe");
            exit(1);
        }
        if ((pid = fork()) < 0) {
            perror("fork");
            exit(1);
        }
        if (pid > 0) { /* parent */
            close(fd[0]);
            write(fd[1], "hello world
    ", 12);
            wait(NULL);
        } else { /* child */
            close(fd[1]);
            n = read(fd[0], line, MAXLINE);
            write(STDOUT_FILENO, line, n);
        }
        return 0;
    }                                        

    运行结果:

     

     

     

     

     

     

  • 相关阅读:
    03 获取元素节点对象的方式
    02 window对象的常用方法
    01 BOM对象介绍
    10 for循环介绍和应用
    09 三元运算
    序列化pickle
    随机数random模块
    datetime模块时间运算
    time模块细讲
    时间处理模块
  • 原文地址:https://www.cnblogs.com/yongdaimi/p/8024819.html
Copyright © 2020-2023  润新知