Write 带阻塞|学习笔记

简介: 快速学习 Write 带阻塞

开发者学堂课程【物联网开发- Linux 高级程序设计全套视频Write 带阻塞】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/660/detail/11040


Write 带阻塞

 

调用write 函数向 FIFO 里写数据,当缓冲已满时 write 也会阻塞。

验证:

Write.c

#include <stdio.h>

#include <string.h>

#include <unistd.h>

#include <sys/types.h>

#include <sys/stat.h>

#include <fcntl.h>

int main(int argc, char  *argv[ ])

{
int fd;

Int i=0

}

fd = open("./fifo",O _RDONLY);

If (td<0)

{

perror("open");

return 0,

}

printf("open read only sucess \n");

while(1 )

{

Write(fd,”hello world”,11);

Printf(“write sucess\n);

I++;

Printf(“i=%d\n”,n);

//sleep(1);

}

close(fd);

return 0;

}

Read.c

Int fd;

Char buf[101];

Mkfifo(“fifo”,o_RDONLY);

If(fd<0)

{

Perror(“open”);

Return 0;

}

Printf(“open read only sucess\n”);

While(1)

{

Memset(buf,0,sizeof(but));

Read(fd,but,100);

Sleep(1);

While(1);

Close(fd);

Return0;

}

打开管道不循环读了,只读一次

效果如下:

image.gif只读了一百个,验证了write,将管道写满后

这两种前提是默认阻塞方式打开管道,没有指定非堵塞。

相关文章
|
自然语言处理 安全 C++
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
【C++ 格式化输出 】C++20 现代C++格式化:拥抱std--format简化你的代码
9607 4
|
消息中间件 存储 Java
SpringBoot 整合 RabbitMQ
SpringBoot 整合 RabbitMQ
141 0
|
算法
鬼手操控着你的手机?大模型GUI智能体易遭受环境劫持
【9月更文挑战第27天】近年来,随着人工智能技术的发展,多模态大语言模型(MLLM)在图形用户界面(GUI)中广泛应用,提升了交互体验。然而,最新研究《环境警示:多模态智能体易受环境干扰》指出,这些智能体可能因环境干扰而行为失准。作者通过实验展示了即使是强大模型也会受无关因素影响,导致不可靠或不可预测的行为。研究还证实,通过环境注入攻击可进一步加剧此问题。尽管如此,多模态GUI智能体依然潜力巨大,未来需改进感知能力和算法以增强鲁棒性,解决环境干扰问题。论文详细内容见:https://arxiv.org/abs/2408.02544。
230 8
|
12月前
|
存储 NoSQL Linux
linux之core文件如何查看和调试
通过设置和生成 core 文件,可以在程序崩溃时获取详细的调试信息。结合 GDB 等调试工具,可以深入分析 core 文件,找到程序崩溃的具体原因,并进行相应的修复。掌握这些调试技巧,对于提高程序的稳定性和可靠性具有重要意义。
5792 6
|
网络协议 物联网 开发者
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
详细介绍 MQTT 的工作原理,包括 MQTT 协议的特点、核心概念以及消息传递的流程
7855 1
|
移动开发 HTML5
HTML lable标签
HTML lable标签
|
数据采集 存储 数据可视化
Pandas高级教程:数据清洗、转换与分析
Pandas是Python的数据分析库,提供Series和DataFrame数据结构及数据分析工具,便于数据清洗、转换和分析。本教程涵盖Pandas在数据清洗(如缺失值、重复值和异常值处理)、转换(数据类型转换和重塑)和分析(如描述性统计、分组聚合和可视化)的应用。通过学习Pandas,用户能更高效地处理和理解数据,为数据分析任务打下基础。
1427 3
|
前端开发 JavaScript
Vue+Swiper实现轮播图效果
Vue+Swiper实现轮播图效果
450 1
36zTree - 分批异步加载大数据量
36zTree - 分批异步加载大数据量
120 0
|
存储 算法
Hash 算法有哪些?
Hash 算法有哪些?
449 0
Hash 算法有哪些?