linux管道是干什么用的?
管道(pipe)是进程间通信的一种实现方式。在 Linux 系统中,管道本质上是一种特殊的文件,它的主要用途是实现进程间的通信。文中演示所用环境为 Ubuntu 18.04 desktop。
在 shell 中执行下面的命令:
$ echo abc | cat
echo 命令的输出通过管道作为了 cat 命令的输入。这里面的具体操作是由 shell 程序完成的。
管道的一个显著特点是:创建一个管道后,会获得两个文件描述符,分别用于对管道进行读取和写入操作。通常将这两个文件描述符称为管道的读取端和写入端,从写入端写入管道的任何数据都可以从读取端读取。
f代表什么管道?
在计算机中,f通常是指文件描述符(file descriptor)管道。它是一种用于在进程之间传递数据的机制,通常用于实现进程间通信。文件描述符是一个整数值,它与系统中打开的文件或其他输入/输出资源相关联。在Linux系统中,每个进程都有一个文件描述符表,用于跟踪打开的文件和管道。通过文件描述符管道,进程可以通过管道进行相互通信和传输数据。因此,管道是一种非常重要的进程间通信方式,广泛应用于操作系统和网络编程中。
linux阻塞指令?
1.阻塞(block)概念:指进程或线程在执行设备操作或管道,或则网络时,不能获取到资源就被挂起,
直到满足可操作的条件后在进行操作,被挂起的进程进入休眠状态,从运行队列移走,直到
等待的条件满足才继续执行。也就是执行到某些函数时必须等待某个事件发生函数才返回。
2.非阻塞(non_block):进程就算没有获取到资源或没有等到事件发生时不挂起,通常会直接放弃或不断查询,
直到可以进行的位置。也就是函数的执行不必等待事件发生,一旦执行肯定返回,用返回值来反应函数执行情况。
3.例如:read读取输入输出设备/dev/tty
4.read设备文件时发生阻塞

