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

北湖区网站建设公司哪家好兰州专业做网站的公司有哪些

北湖区网站建设公司哪家好,兰州专业做网站的公司有哪些,wordpress标签3d,服务器机柜一、有名管道 1. 为何提出有名管道的说法#xff0c;目的是为了克服无名管道的不足之处#xff1a; 无名管道只能是用于具有亲缘关系的进程之间#xff0c;这就限制了无名管道的使用范围。有名管道可以使互不相关的两个进程互相通信#xff0c;有名管道可以通过路径名来指…一、有名管道 1. 为何提出有名管道的说法目的是为了克服无名管道的不足之处 无名管道只能是用于具有亲缘关系的进程之间这就限制了无名管道的使用范围。有名管道可以使互不相关的两个进程互相通信有名管道可以通过路径名来指出并在文件系统课件 为了这种有名管道Linux中专门设立了一个专门的特殊文件系统-管道文件以FIFO的形式存在于文件系统中这样即使与FIFO的创建者不存在亲缘关系的进程只要访问该路径就能彼此通过FIFO相互通信因此通过FIFO不相关的进程也能交换数据但在磁盘只是一个节点而文件的数据只存在内存缓冲页面上与普通管道一样。 2. 有名管道的创建 有名管道可以从命令行上创建命令行方法是使用下面这个命令 $ mkfifo myfifo 有名管道也可以从程序里创建相关API有 #include sys/stat/h int mkfifo(cosnt char *path, mode_t mode); 参数 第一个参数是一个普通的路径名也就是创建后FIFO名字。第二个参数与打开普通文件的open函数中的mode参数相同(文件的读写权限)如果mkfifo的一个参数是一个已经存在路径名时会返回EEXIST错误所以一般典型的调用代码会检查是否返回该错误如果确实返回该错误那么要调用打开FIFO的函数open就可以了。3. FIFO的open函数打开规则 O_RDONLY、O_WRONLY和O_NONBLOCK标志共有四种合法的组成方式 flags O_RDONLYopen将会调用阻塞除非有另外一个进程以写的方式打开用一个FIFO否则一直等待。flags O_WRONLYopen将会调用阻塞除非有另外一个进程以读的方式打开同一个FIFO否则一直等待。flags  O_RDONLY | O_NONBLOCK如果此时没有其他进程以写的方式打开FIFO此时open也会成功返回此时FIOF被读打开而不会返回错误。flag是 O_WRONLY | O_NONBLOCK立即返回如果此时没有其他进程以读的方式打开open会失败打开此时FIOF没有被打开返回-1。二、程序清单 1. 测试代码 #include unistd.h #include sys/stat.h #include stdlib.hint main(int argc, const char *argv[]) {int ret mkfifo(myfifo, 0666);if (ret -1) {perror(mkfifo);exit(-1);}return 0; } 输出结果 2. 测试代码 #include unistd.h #include sys/stat.h #include stdlib.hint main(int argc, const char *argv[]) {if (access(argv[1], F_OK) ! 0) {int ret mkfifo(argv[1], 0666);if (ret -1) {perror(mkfifo);exit(-1);}}return 0; } 输出结果 3. 测试代码 程序1 // writefifo.c #include unistd.h #include sys/stat.h #include fcntl.h #include string.h #include stdlib.h #include stdio.hint main(int argc, const char *argv[]) {int fd, nwrite;char buf[1024] \0;if (access(argv[1], F_OK) ! 0) {int ret mkfifo(argv[1], 0666);if (ret -1) {perror(mkfifo);exit(-1);}}fd open(argv[1], O_WRONLY);if (fd -1) {perror(open);return -1;}while (1) {fgets(buf, sizeof(buf), stdin);buf[strlen(buf) - 1] \0;nwrite write(fd, buf, strlen(buf));if (nwrite -1) {perror(write error);return -1;}if (!strncmp(buf, quit, 4))break;}return 0; } 2. 程序2 //readfifo.c #include unistd.h #include sys/stat.h #include fcntl.h #include string.h #include stdlib.h #include stdio.h int main(int argc, const char *argv[]) {int ret, fd, nread;char buf[1024] \0;if (access(argv[1], F_OK) ! 0) {ret mkfifo(argv[1], 0666);if (ret -1) {perror(mkfifo);exit(-1);}}fd open(argv[1], O_RDONLY);if (fd -1) {perror(open);exit(-1);}while (1) {nread read(fd, buf, sizeof(buf));if (nread -1) {perror(read errro);exit(-1);}printf(read from fifo is %s\n, buf);if (!strncmp(buf, quit, 4))break;memset(buf, \0, sizeof(buf));}return 0; } 输出结果 【题目】验证flags  O_RDONLY | O_NONBLOCK如果此时没有其他进程以写的方式打开FIFO此时open也会成功返回此时FIOF被读打开而不会返回错误。 3. 测试代码 #include unistd.h #include sys/stat.h #include fcntl.h #include string.h #include stdlib.h #include stdio.h int main(int argc, const char *argv[]) {int ret, fd, nread;char buf[1024] \0;if (access(argv[1], F_OK) ! 0) {ret mkfifo(argv[1], 0666);if (ret -1) {perror(mkfifo);exit(-1);}}fd open(argv[1], O_RDONLY | O_NONBLOCK);if (fd -1) {perror(open);exit(-1);}printf(open read fifo successfully\n);while (1) {nread read(fd, buf, sizeof(buf));if (nread -1) {perror(read errro);exit(-1);}printf(read from fifo is %s\n, buf);if (!strncmp(buf, quit, 4))break;memset(buf, \0, sizeof(buf));}return 0; } 输出结果 【题目】验证flag是 O_WRONLY | O_NONBLOCK立即返回如果此时没有其他进程以读的方式打开open会失败打开此时FIOF没有被打开返回-1。 4. 测试代码 #include unistd.h #include sys/stat.h #include fcntl.h #include string.h #include stdlib.h #include stdio.hint main(int argc, const char *argv[]) {int fd, nwrite;char buf[1024] \0;if (access(argv[1], F_OK) ! 0) {int ret mkfifo(argv[1], 0666);if (ret -1) {perror(mkfifo);exit(-1);}}fd open(argv[1], O_WRONLY | O_NONBLOCK);if (fd -1) {perror(open);return -1;}printf(open write fifo successfully\n);while (1) {fgets(buf, sizeof(buf), stdin);buf[strlen(buf) - 1] \0;nwrite write(fd, buf, strlen(buf));if (nwrite -1) {perror(write error);return -1;}if (!strncmp(buf, quit, 4))break;}return 0; } 输出结果
http://www.yutouwan.com/news/377068/

相关文章:

  • 医药类网站建设评价知名企业官网设计公司
  • 上海帝程网站建设公司企业手机网站建设机构
  • 制学网网站网站营销建设
  • 用三权重的网站做友链有好处没百度关键字
  • 商业网站开发教程wordpress家具主题
  • 网站怎么做动态主图网站音乐播放器代码
  • 打开上次浏览的网站个人博客网站
  • 免费建立网站空间wordpress能放几个域名
  • 大型房产网站建设网站开发用什么语言开发的
  • 巴中交通建设有限公司网站潍坊市做网站
  • 网上建设银行网站首页做视频导航网站
  • 企业级网站建设企业类网页设计
  • 网站制作合肥千万别学服装设计
  • 物流网站建设实例微信分销app
  • 做网站很难吗海南省建设厅官方网站
  • 会员系统网站制作网站建设选哪家
  • ci框架的网站北京市建设工程交易服务中心网站
  • 大连网站优化步骤常熟网站制作设计
  • 个人网站域名备案流程江门建设局网站
  • 成都网站模板西安做网站程序
  • 北京网站建设好不好天大庆建设网站首页
  • 网页制作与网站建设论文wordpress页面导航菜单
  • 扬州网站建设 开元wordpress如何更新临时域名
  • 营销类网站设计 要点运营推广方案模板
  • 合肥网站制作需小件加工平台
  • html中网站最下面怎么做外发加工网接单
  • app和手机网站的区别青岛做企业网站
  • 做网站要icp备案吗专业的网站开发服务商
  • 奥迪汽车建设网站网站制作换下面友情连接
  • 上海大公司seo排名网站 优帮云