在linux中,管道是一种经常使用的通信机制。
在本质上,管道也是一种文件,但它不同于一般文件。流水线可以克服使用文件进行通信的两个问题:限制流水线的大小。实际上,管道是一个固定大小的缓冲区。在linux中,缓冲区的大小是一页,也就是4k字节,这样它的大小就不会像文件那样增长。使用单个固定缓冲区也会带来问题。例如,当写入管道时,它可能已满。当这种情况发生时,对管道的后续write()调用将在默认情况下被阻止,等待读取一些数据,以便为write()调用留出足够的写入空间。读取过程也可能比写入过程快。读取所有当前进程数据后,管道将变空。当发生这种情况时,默认情况下会阻止后续的read()调用,等待写入一些数据,这解决了read()调用返回文件结尾的问题。注意:从管道读取数据是一次性操作。一旦数据被读取,它将从管道中被丢弃,以释放空间来写入更多的数据。
首先,感谢您的邀请。
简而言之,与windows一样,linux是一种操作系统。它们之间的典型区别是linux下的所有东西都是一个文件。linux有很多优点:开源、免费、跨平台。只要我们遵守版权和法律,任何组织和个人都可以直接下载和使用。因此衍生出来的产品很多,比如centos、redhat、debian等,在国内也有优麒麟、红旗等,因为linux可以作为移植系统来操作开发板,所以在嵌入式系统中得到了广泛的应用。此外,与银行一样,进入机构也会选择linux系统作为后台服务器。