首页 > 其他分享 >管道传输

管道传输

时间:2024-12-17 10:31:32浏览次数:7  
标签:read bytes pipefd 传输 管道 exit 进程

提交运行 ls | sort -r的结果,总结管道的功能

管道的功能总结:

数据流传输: 管道允许将一个命令的输出直接传输到另一个命令的输入,无需中间文件。
命令组合: 可以组合多个命令,实现复杂的数据处理流程。
效率提升: 由于数据在内存中直接传输,避免了磁盘 I/O,提高了处理速度
image

使用Linux系统调用编写实现管道(pipe)功能时,需要什么系统调用?提交man -k 相关截图。

image

使用系统调用创建一个管道,父进程向管道写入数据,子进程从管道读取数据。在父进程中使用 write 系统调用写入字符串 “你的八位学号+姓名” ,并在子进程中使用 read 系统调用读取数据并打印。提交代码,编译运行过程截图(可文本)

image
`#include <stdio.h>

include <unistd.h>

include <stdlib.h>

include <sys/wait.h>

int main() {
int pipefd[2];
pid_t pid;
char message[] = "20221314詹全晨"; // 写入管道的字符串

// 创建管道
if (pipe(pipefd) == -1) {
    perror("pipe");
    exit(EXIT_FAILURE);
}

// 创建子进程
pid = fork();
if (pid == -1) {
    perror("fork");
    exit(EXIT_FAILURE);
}

if (pid == 0) { // 子进程
    // 子进程关闭写端,只保留读端
    close(pipefd[1]);

    // 读取数据
    char buffer[128];
    int bytes_read = read(pipefd[0], buffer, sizeof(buffer));
    if (bytes_read == -1) {
        perror("read");
        exit(EXIT_FAILURE);
    }
    buffer[bytes_read] = '\0'; // 确保字符串以空字符结尾

    // 打印接收到的数据
    printf("Received: %s\n", buffer);

    // 关闭读端
    close(pipefd[0]);
    exit(EXIT_SUCCESS);
} else { // 父进程
    // 父进程关闭读端,只保留写端
    close(pipefd[0]);

    // 写入数据到管道
    int bytes_written = write(pipefd[1], message, sizeof(message));
    if (bytes_written == -1) {
        perror("write");
        exit(EXIT_FAILURE);
    }

    // 关闭写端
    close(pipefd[1]);

    // 等待子进程结束
    wait(NULL);
}

return 0;

}
`

gitlog

commit 64bb38900e690643ee682669f09724e833b649e7
Author: zqc zqc@zqc-virtual-machine
Date: Tue Dec 17 08:43:56 2024 +0800
管道传输

标签:read,bytes,pipefd,传输,管道,exit,进程
From: https://www.cnblogs.com/zhanquanchen/p/18611821

相关文章

  • 适配信创环境的国产FTP替代软件,让数据传输更环保高效!
    文件传输协议(FTP),诞生于1971年,自20世纪70年代发明以来,FTP已成为传输大文件的不二之选。内置有操作系统的FTP可提供一个相对简便、看似免费的文件交换方法,因此得到广泛使用。但随着技术的发展和企业对于文件传输的需求日益增长,传统FTP协议由于其在安全性、传输效率、管理便利性、......
  • 国标GB28181视频平台EasyCVR网络传输技巧:使用无源光网络传输做监控架构的实际表现如何
    在现代通信网络的快速发展中,PON(PassiveOpticalNetwork,无源光网络)技术因其高带宽、低成本和易于扩展的特点,成为了构建新一代接入网的关键技术。本文将详细介绍PON设备的网络规划,包括OLT(OpticalLineTerminal,光线路终端)的部署、分光器的部署、ONU(OpticalNetworkUnit,光网络单元)......
  • loadSend:免费开源局域网数据传输工具 全平台支持 传输工具
    前言不同系统的电脑、手机,文件传输有没有简单一点的方法?手机是iPhone,电脑是Windows,如何更快捷传输文件呢?我们最常用和用得最多的文件传输工具可能就是微信以及QQ了吧!其实,如果只是在局域网内,用微信这一类聊天工具来传输文件并不算特别合适,除了可能存在的文件大小限制,最大的问......
  • rsync for windows是一种非常高效、灵活的文件同步工具,它的增量复制和差异传输技术,使
    C:\Users\Administrator\Downloads\rsync4win\rsync4win\rsync>rsyncrsync version3.3.0 protocolversion31Copyright(C)1996-2024byAndrewTridgell,WayneDavison,andothers.Website:https://rsync.samba.org/Capabilities:  64-bitfiles,64-bit......
  • 【网络】传输层协议UDP/TCP&&网络层IP&&数据链路层MAC&&NAT详解
    主页:醋溜马桶圈-CSDN博客专栏:计算机网络原理_醋溜马桶圈的博客-CSDN博客gitee:mnxcc(mnxcc)-Gitee.com目录1.传输层协议UDP1.1传输层1.2端口号1.3UDP协议1.3.1UDP协议端格式1.3.2 UDP的特点1.3.3 面向数据报1.3.4UDP的缓冲区1.3.5UDP使用注意事......
  • 计算机网络-传输层 TCP协议(上)
    目录报头结构TCP的可靠传输机制核心机制一:确认应答TCP的序号和确认序号核心机制二:丢包重传核心机制三:连接管理建立连接-三次握手断开连接-四次挥手核心机制四:滑动窗口数据包已经抵达,ACK被丢了数据包就直接丢了​编辑报头结构4位TCP报头⻓度:表⽰该TCP头部......
  • 铺设水管时,如果操作不当,可能会导致水管系统出现各种问题,影响水流效率、管道寿命和安全
    铺设水管时,如果操作不当,可能会导致水管系统出现各种问题,影响水流效率、管道寿命和安全性。以下是一些常见的水管铺设错误及其可能带来的后果:1. 管道铺设不平整或坡度不合理问题:如果管道铺设不平整或坡度不正确(水流方向坡度过小或过大),容易导致水流不畅,甚至出现积水和堵塞。后......
  • 内外网文件传输新突破:操作简便,速度飞快,安全无忧!
    伴随着全球数字化转型的持续深入,数字经济的蓬勃发展,数据资产已成为非常重要的生产要素。为了确保内部核心资产的安全性,很多企业和机构都会选择将网络进行隔离划分,比如内外网隔离,但网络隔离后,在日常工作中,仍存在用户需求把文件数据从内网到外网的文件摆渡业务需求。需要一款内外网......
  • P11179 [ROIR 2018 Day1] 管道监控 题解
    题解:P11179[ROIR2018Day1]管道监控秒秒题。没有题解呢,来发一发。建议降蓝。思路发现往下匹配路径不好处理,于是反转每个路线的字符串,然后从下往上移动覆盖,这样定了一个方向。若只输出最小值,就从下往上dp,发现可以\(n^3\)处理,猜测正解设两维状态,\(\Theta(n)\)合并。第一......
  • 国标GB28181视频平台EasyCVR安防技术人员必看:网络监控系统安装的4种传输方式
    随着安防行业的不断发展和技术的日益进步,网络监控系统已成为现代安防体系中不可或缺的一部分。对于新加入监控行业的技术人员来说,掌握网络监控系统的安装和配置是职业生涯的起点。本文将为新手技术人员详细介绍网络监控系统安装的四种基本传输方式,并探讨如何根据实际环境和客户需......