首页 > 其他分享 >【C语言】使用pipe,execlp,dup2实现ls | wc -l

【C语言】使用pipe,execlp,dup2实现ls | wc -l

时间:2022-08-17 16:02:47浏览次数:44  
标签:wc err dup2 int pid C语言 sys fd include

#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>


void sys_err(const char *str)
{
    perror(str);
    exit(1);
}
int  main(int argc,char *argv[])
{
    int fd[2];
    int ret;
    ret = pipe(fd);
    pid_t pid;

    if(ret == -1)
    { sys_err("pipe error");}
//创建子进程 pid = fork(); if(pid == -1) { sys_err("fork error");
}else if(pid > 0)  //父进程 { close(fd[1]);
//输入重定向到管道 dup2(fd[0],STDIN_FILENO); execlp("wc","wc","-l",NULL); sys_err("exclp error"); }else if(pid == 0)  //子进程 { close(fd[0]);
//输出重定向到管道 dup2(fd[1],STDOUT_FILENO); execlp("ls","ls",NULL); sys_err("exclp error"); } return 0; }

 

标签:wc,err,dup2,int,pid,C语言,sys,fd,include
From: https://www.cnblogs.com/powercool/p/16595523.html

相关文章

  • C++ 获得`wchar_t *`的长度
    sizeof(wchar_t);如果你想知道一个wchar_t串(wchar_t*)的大小,要使用wcslen:1size_twcslen(constwchar_t*ws);假设你想终止的C风格的字符串,你有两个选择空的长......
  • c语言<<,>>应用理解
    不讲原理,在使用中总结的规律,在进制转换中遇到10机制的左移或右移,可以将变量乘以2的n次方或者除以2的n次方,左乘,右除,但是乘除要考虑高位的数据溢出,低位数据的丢失。例如十进......
  • c语言测试题
     1、应用缓冲文件系统对文件进行读写操作,关闭文件的函数名为()。 A、fclose0 B、fwrite C、close(0 D、fread(0正确答案:A学生答案:AV2、若有int......
  • C-Primer-Plus-第二章-C语言概述
    第二章C语言概述参考书籍:CPrimerPlus(第6版)中文版一、前言打算跟这本书系统地学习一遍C语言,谨以此系列文章记录自己的学习之路。本文所有图片均来源于此书。二、主......
  • C语言`union`及`位域`
    C语言union及位域1.unionunion就相当于一个类型不固定的变量,存储大小由union内最长的变量决定,存储空间共享,访问内部不同的变量,就会以相应的变量规范对内存进行解析,以如下......
  • 【记录】第一天学习C语言
    今天是2022年8月15日,正式开始C语言的学习之路啦!还有18天开学,就要正式成为大学生了!再说作为电子信息工程专业的学生,怎么能不在暑假开始先学C呢!!!......
  • MDK下的C语言基础学习
    1.位操作1.1:不改变其他位的值情况下,对某几个位进行操作GPIOA->CRL&=0XFFFFFF0F;//将第4-7位清0,清零用&GPIOA->CRL|=0X00000040;//设置相......
  • 【C语言】使用dup2,execlp,实现保存系统命令结果到文件
    #include<fcntl.h>#include<stdio.h>#include<stdlib.h>#include<unistd.h>intmain(void){intfd;//创建文件,获取文件描述符fd=open("ps.out"......
  • c语言中输出整数类整型变量的长度(所占的字节数)
     001、c语言中整数类变量一共包含四个基本类型。001、char型   002、shortint型  003、int型  004、longint型。其中每种基本类型分为signed型和un......
  • c语言中输出字符型变量(char型)所占用的位数
     001、 #include<stdio.h>#include<limits.h>##CHAR_BIT定义了char型所占用的位数,该变量定义在limits.h头文件中intmain(void){printf("CHAR......