验证 read 阻塞|学习笔记

简介: 快速学习验证 read 阻塞

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

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


验证 read 阻塞

 

open 以只读、只写方式打开 FIFO 时会阻塞,调用 read 函数从 FIFO 里读数据时read 也会阻塞。如果管道里没有数据,read 就会停止。

例:04_fifo_read_2.c以阻塞模式,验证read函数也会阻塞#include<stdio.h>

#include <unistd.h>

#include<sys/types.h>

#include<sys/stat.h>

#include<fcnt1.h>

#include<string.h>

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

{

int fd;

Char buf[101】;

mkfifo("fifo",0777);

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

if(fd<o){

perror("open");

return 0;

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

sleep(10);

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

close(fd);

return 0;

}

在write函数前加sleep(10);read函数10秒之后才会在里面写入。

Read打开之后等待10秒之后才能读出显示打印,从而验证了read函数从FIFO里读数据时read也会阻塞。没数据会一直停止,读到数据会运行。

调用write:

gcc write.c -o write

gcc read.c -o read

调用read后打开,10秒以后才会读出

相关文章
|
6月前
|
开发框架 .NET
阅读器关闭时尝试调用Read无效时的解决方法
阅读器关闭时尝试调用Read无效时的解决方法
|
缓存 运维 监控
SSL Session默认设置导致线程阻塞了几十秒的案例分析
SSL Session默认设置导致线程阻塞了几十秒的案例分析
173 0
|
弹性计算 负载均衡 监控
记一次socket read导致业务线程阻塞的案例分析
记一次socket read导致业务线程阻塞的案例分析
441 3
|
存储 缓存
【什么是Read Write Through机制】
【什么是Read Write Through机制】
155 0
|
网络协议 Java
BIO 同步阻塞模型
BIO 同步阻塞模型
BIO 同步阻塞模型
Linux操作方法集接口(read,write)
Linux操作方法集接口(read,write)
Linux操作方法集接口(read,write)
|
网络协议 应用服务中间件
服务器CLOSE_WAIT请求太多的问题
服务器CLOSE_WAIT请求太多的问题
615 0
|
Go
Go channel被关闭时的广播机制,以及遍历未关闭channel时会导致死锁阻塞问题
Go channel被关闭时的广播机制,以及遍历未关闭channel时会导致死锁阻塞问题
180 0
|
机器学习/深度学习 物联网 Linux
Write 带阻塞|学习笔记
快速学习 Write 带阻塞
Write 带阻塞|学习笔记
|
SQL Oracle NoSQL
gdb调试之--read by other session 等待事件的重现
发生read by other session 等待事件,肯定是两个会话同时物理读同一个数据块,假设有两个会话,会话1发生物理读,会话2正要去物理读发现会话1正在物读理产生,此时会话2发生等待,此等待就是read by other session 等待事件。