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

网站 界面协会网站建设的作用

网站 界面,协会网站建设的作用,建设监理工程公司网站,wordpress提示不安全#x1f436;博主主页#xff1a;ᰔᩚ. 一怀明月ꦿ ❤️‍#x1f525;专栏系列#xff1a;线性代数#xff0c;C初学者入门训练#xff0c;题解C#xff0c;C的使用文章#xff0c;「初学」C#xff0c;linux #x1f525;座右铭#xff1a;“不要等到什么都没有了… 博主主页ᰔᩚ. 一怀明月ꦿ  ❤️‍专栏系列线性代数C初学者入门训练题解CC的使用文章「初学」Clinux 座右铭“不要等到什么都没有了才下定决心去做” 大家觉不错的话就恳求大家点点关注点点小爱心指点指点 目录 命名管道 mkfifo指令 mkfifo系统调用 命名管道实践客户端server与服务端client进行通信 client.c server.cc Comm.h共享管道文件的名字 Makefile 命名管道 匿名管道只能具有血缘关系的进程间通信如果我想要让两个毫不相干的进程进行通信得需要命名管道 mkfifo指令 mkfifo是Linux/Unix中的一个命令用于创建一个命名管道named pipe文件。命名管道可以让进程在不同的时间以非常高效的方式进行通信而无需使用临时文件或共享内存等机制。 命名管道是一种特殊类型的文件它提供了一种先进先出FIFO的数据传输方法。它允许两个或多个进程之间进行通信即一个进程往管道写入数据另一个进程从管道中读取数据。 mkfifo命令的基本语法如下 mkfifo [option]... filename... 其中option是一些可选参数filename是要创建的命名管道文件名。例如要创建一个名为mypipe的命名管道文件可以使用以下命令 mkfifo mypipe 创建成功后可以使用ls命令查看该文件可以发现它的类型是p $ ls -l mypipe prw-r--r-- 1 user user 0 Feb  2 16:20 mypipe 其中文件类型p表示它是一个命名管道文件。 通过命名管道进程之间可以进行简单的IPC通信例如一个进程可以向管道中写入数据另一个进程则可以从管道中读取数据。在使用管道通信时需要注意以下几点 * 同一时间只能有一个进程打开管道进行读写否则会导致竞争条件。 * 写入进程在向管道中写入数据时如果管道已满写入操作将被阻塞直到其他进程从管道中读取数据为止。 * 读取进程在从管道中读取数据时如果管道为空读取操作将被阻塞直到另一个进程向管道中写入数据为止。 需要注意的是命名管道与匿名管道通过pipe系统调用创建的管道不同它们具有不同的用途和限制。命名管道允许不同进程之间进行通信而匿名管道只能在父子进程之间进行通信。 事例 [BCHhcss-ecs-6176 1_25]$ mkfifo fifo [BCHhcss-ecs-6176 1_25]$ ll 总用量 84 prw-rw-r-- 1 BCH BCH 0 2月 1 22:05 fifo -rw-rw-r-- 1 BCH BCH 90 1月 31 18:43 Makefile -rwxrwxr-x 1 BCH BCH 70792 2月 1 17:22 processpool -rw-rw-r-- 1 BCH BCH 3605 2月 1 17:22 processpool.cc -rw-rw-r-- 1 BCH BCH 1547 2月 1 16:46 task.hpp 如果两个进程都需要访问同一文件还需要把一份文件加载两次到内存吗 是不需要的只需要加载一次就行了但是不同的进程有自己的文件管理结构 例如 mkfifo系统调用 mkfifo() 是 Linux 中的一个系统调用用于创建一个命名管道Named Pipe。命名管道是一种特殊类型的文件可以在不同进程间进行通信类似于匿名管道但有一个重要的区别命名管道在文件系统中有一个相关联的路径名因此可以在不同的进程中通过路径名进行访问。 mkfifo() 函数的原型通常在头文件 unistd.h 中声明 #include unistd.h int mkfifo(const char *pathname, mode_t mode); 参数说明 pathname指定要创建的命名管道的路径名。 mode指定创建的管道的权限模式通常采用八进制表示比如 0666。 mkfifo() 函数成功时返回 0失败时返回 -1并设置相应的错误码可以通过 errno 变量获取错误信息。 命名管道的创建通常与 open() 函数结合使用用于打开管道以进行读取或写入操作。 示例 #include stdio.h #include stdlib.h #include unistd.h #include fcntl.h int main() {const char *fifo_path /tmp/myfifo; // 命名管道的路径名// 创建命名管道if (mkfifo(fifo_path, 0666) -1) {perror(mkfifo);exit(EXIT_FAILURE);}printf(Named pipe created successfully.\n);return 0; } 上述示例中创建了一个命名管道 /tmp/myfifo权限为 0666。如果创建成功则输出 Named pipe created successfully.否则输出相应的错误信息。 命名管道实践客户端server与服务端client进行通信 client.c #include iostream #include sys/types.h #include sys/stat.h #include cstring #include fcntl.h #include unistd.h #include comm.husing namespace std;int main(){int wfd open(FILENAME, O_WRONLY);if (wfd 0){cerr error: errno errstring : strerror(errno) endl;return 1;}string message;while (true){cout please enter# ;getline(cin, message);ssize_t s write(wfd, message.c_str(), message.size());if (s 0){cerr error: errno errstring : strerror(errno) endl;break;}}close(wfd);return 0; }server.cc #include iostream #include sys/types.h #include sys/stat.h #include cstring #include fcntl.h #include unistd.h #include comm.husing namespace std;// 创建管道文件创建成功返回真否则返回假 bool Mkfifo(){int n mkfifo(FILENAME, 0666);if (n 0){cerr error: errno errstring : strerror(errno) endl;return false;}return true; }int main(){ // 使用了goto语句因为我不想每次打开客户端都去删除原来的管道文件因为每次打开客户端都会创建 // 管道文件这样就会报错文件已存在所以我们需要管道文件已存在我们就不创建管道文件不存在才创建 // 管道文件 start:int rfd open(FILENAME, O_RDONLY);if (rfd 0){cerr error: errno errstring : strerror(errno) endl;if (Mkfifo())goto start;elsereturn 2;}char buffer[1024];while (true){ssize_t s read(rfd, buffer, sizeof(buffer) - 1);if (s 0){buffer[s] 0;cout client say# buffer endl;}else if (s 0) // 如果写端关闭了{break;}}close(rfd);return 0; }Comm.h共享管道文件的名字 #pragma once#define FILENAME .fifo//隐藏文件 Makefile .PHONY:all all:client serverclient:client.cc g -o $ $^ -stdc11server:server.cc g -o $ $^ -stdc11.PHONY:clean clean: rm -f client server .fifo如果大家还有不懂或者建议都可以发在评论区我们共同探讨共同学习共同进步。谢谢大家
http://www.pierceye.com/news/543895/

相关文章:

  • 晋城网站设计重庆小程序商城开发
  • 找人做网站被骗能立案吗阿里云专有网络做网站
  • 做别人一摸一样的网站犯法吗买一个网站多少钱
  • 网站建设介绍书网站转换率
  • 云浮各类免费建站商业街网站建设方案
  • 注册网站怎么注册不了网站诊断示例
  • 打电话沟通做网站美食网页模板免费下载
  • 网站可以做库存吗表白网页在线生成网站
  • wordpress全站301网络设计项目
  • 新建网站二级网页怎么做手机建行网站
  • 手机编辑WordPress博客唐山seo推广公司
  • 网站建设祥云平台高明网站设计案例
  • 做网站比较大的公司黑客入侵网站怎么做
  • 汕头网站建设哪里找网站建设找哪家好
  • 怎么做公司的宣传网站免费优化
  • 网站数据库模板下载中牟网络推广公司
  • 营销型网站有什么特点域名解析错误无法上网
  • 手机网站可以做英文版本吗惠州网络科技有限公司
  • 温州专业手机网站制作多少钱wordpress类似头条主题
  • 怎么做一个论坛网站wordpress 注册邮箱验证失败
  • 一家公司做两个网站百度四川营销中心
  • 网站群 主要功能如何自己创建网页
  • 大量增加告权重网站友链回提升网站权重吗官方网站下载地址
  • 哪家做网站的好google 网站营销
  • jsp网站 iisasp.net做的音乐网站
  • 网站特效怎么做的常州网站建设报价
  • 网站漂浮窗口代码麻涌东莞网站建设
  • icp许可证对网站的要求怎么不用wordpress
  • 四平市城市建设档案馆网站山东省建设业协会网站
  • js网站访问计数ui网上接单网站