当前位置: 首页 > news >正文

帮别人做网站哪里可以接单地推接单在哪个平台找

帮别人做网站哪里可以接单,地推接单在哪个平台找,勒流网站建设,网站部兼容ie6一、有名管道 有名管道与匿名管道的不同: 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。 FI…

一、有名管道 

  1. 有名管道与匿名管道的不同:

    • 有名管道提供了一个路径名,并以FIFO的文件形式存在于文件系统中。
    • 与匿名管道不同,有名管道可以被不相关的进程使用,只要它们可以访问该路径,就能够通过有名管道进行通信。
  2. FIFO的打开和使用方式:

    • 一旦打开了有名管道,可以使用与操作匿名管道和其他文件相同的 I/O 系统调用,如 read()write()close()
  3. 数据交换顺序和先入先出(FIFO):

    • 与管道类似,有名管道也有一个写入端和读取端。
    • 从有名管道中读取数据的顺序与写入的顺序是一样的,符合先入先出(FIFO)的原则。
  4. FIFO的特点:

    • FIF0在文件系统中作为一个特殊文件存在,但其内容存放在内存中。
    • 当使用有名管道的进程退出后,FIFO文件仍然保存在文件系统中,以便以后使用。

 

 

 

 二、有名管道创建

  • 有名管道的路径和名称可以根据实际需求进行设置,但应遵循文件系统的规则。
  • 有名管道创建成功后,其他进程可以通过相同的路径和名称打开该有名管道,以进行进程间通信。
  • 在实际应用中,需要对返回值进行更详细的错误处理,并根据需要设置更复杂的权限模式。
/*创建fifo文件1. 通过命令 : mkfifo名字2. 通过函数 : int mkfifo(const char *pathname,mode_t mode);#include<sys/types.h>#include<sys/stat.h>int mkfifo(const char *pathname,mode_t mode);参数:-pathname: 管道名称的路径-mode: 文件的权限,和open的mode一样返回值:-成功:0-失败:-1,并设置错误号**/
#include<stdio.h>
#include<sys/types.h>
#include<sys/stat.h>
#include <string.h>int main(){int ret =mkfifo("fifo1",0664);if(ret==-1){perror("mkfifo");exit(0);}return 0;
}

 三、案例

        一个用于向有名管道写入数据,另一个用于从有名管道中读取数据。这两个程序共同演示了有名管道的基本用法

 write端:

  • 判断文件是否存在,如果不存在则创建有名管道文件。
  • 以只写方式打开管道。
  • 使用 write 函数向管道中写入数据。

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>// 向管道中写数据
/*有名管道的注意事项:1.一个为只读而打开一个管道的进程会阻塞,直到另外一个进程为只写打开管道2.一个为只写而打开一个管道的进程会阻塞,直到另外一个进程为只读打开管道读管道:管道中有数据,read返回实际读到的字节数管道中无数据:管道写端被全部关闭,read返回0,(相当于读到文件末尾)写端没有全部被关闭,read阻塞等待写管道:管道读端被全部关闭,进行异常终止(收到一个SIGPIPE信号)管道读端没有全部关闭:管道已经满了,write会阻塞管道没有满,write将数据写入,并返回实际写入的字节数。
*/
int main() {// 1.判断文件是否存在int ret = access("test", F_OK);if(ret == -1) {printf("管道不存在,创建管道\n");// 2.创建管道文件ret = mkfifo("test", 0664);if(ret == -1) {perror("mkfifo");exit(0);}}// 3.以只写的方式打开管道int fd = open("test", O_WRONLY);if(fd == -1) {perror("open");exit(0);}// 写数据for(int i = 0; i < 100; i++) {char buf[1024];sprintf(buf, "hello, %d\n", i);printf("write data : %s\n", buf);write(fd, buf, strlen(buf));sleep(1);}close(fd);return 0;
}

read端:

  • 以只读方式打开管道。
  • 使用 read 函数从管道中读取数据。
  • 当写端关闭后,read 返回 0,程序检测到写端断开连接并退出。
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>// 从管道中读取数据
int main() {// 1.打开管道文件int fd = open("test", O_RDONLY);if(fd == -1) {perror("open");exit(0);}// 读数据while(1) {char buf[1024] = {0};int len = read(fd, buf, sizeof(buf));if(len == 0) {printf("写端断开连接了...\n");break;}printf("recv buf : %s\n", buf);}close(fd);return 0;
}

http://www.ritt.cn/news/15224.html

相关文章:

  • 公司网站主页怎么做互联网营销师证书是国家认可的吗
  • 地方做什么网站百度站长平台如何添加网站
  • 怎么做网站排名优化网络推广的具体方式
  • 蓄电池回收网站建设如何做好网络营销工作
  • 做公司网站棋牌利于seo的建站系统有哪些
  • wordpress 副标题正规网络公司关键词排名优化
  • 做塑料的网站名字图片外链生成工具在线
  • 在网盘上怎么做自己的网站百度平台联系方式
  • 花都做网站公司谷歌广告开户
  • 网站如何排版中国广告网
  • 检察院加强网站建设青岛seo经理
  • 网站做的二维码失效了seo排名优化厂家
  • 能自己做二次元人物的网站免费优化
  • 福州网吧宁德seo
  • 国内服务器网站优化检测
  • 做网站到底要不要备案短视频平台推广
  • 如何创建一个公司网站郑州网络营销排名
  • 福州网站建设发布中国营销策划第一人
  • 如何在建设厅网站投诉百度联盟项目看广告挣钱
  • 福州做网站设计手机优化管家
  • vc 做网站源码关键词首页排名优化价格
  • 音响网站模板苏州网站优化排名推广
  • 如何做原创小说网站网站关键词有哪些
  • 贵阳网站建设企业网站seo运营
  • 如何给网站流量来源做标记通过在网址后边加问号?全国疫情最新名单
  • 网站怎么优化推广重庆自动seo
  • 艺术学院网站模板网络营销常用的方法有哪些
  • 新乡做网站哪家好店铺推广怎么做
  • 做爰全的网站网络营销培训机构
  • 用dw做的网站容易变形百度企业官网认证