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

php网站上传漏洞重庆公司直招

php网站上传漏洞,重庆公司直招,ui界面设计案例,wordpress 媒体库 API根据上节所讲就可以了解到#xff1a;管道其实就是实现进程间通讯IPC中的一种类型方法 基本概念#xff08;无名管道#xff09; 管道是一种最基本的IPC机制#xff0c;通常指无名管道#xff0c;也是UNIX系统IPC最古老的形式。管道只能作用于有血缘关系的进程之间…根据上节所讲就可以了解到管道其实就是实现进程间通讯IPC中的一种类型方法 基本概念无名管道 管道是一种最基本的IPC机制通常指无名管道也是UNIX系统IPC最古老的形式。管道只能作用于有血缘关系的进程之间完成数据传递。调用pipe系统函数即可创建一个管道。有如下特质 其本质是一个伪文件(实为内核缓冲区)可以使用普通的read,write等函数进行读写由两个文件描述符引用一个表示读端一个表示写端规定数据从管道的写端流入管道从读端流出 管道的原理 管道实为内核使用环形队列机制借助内核缓冲区(4k)实现。 管道的局限性 数据一旦被读走便不在管道中存在不可反复读取由于管道采用半双工通信方式。因此数据只能在一个方向上流动 所谓半双工其实在讲串口的时候就提到过也就是同一时间要么只能写要么只能读不能同时写和读。 对于进程通讯就是父进程写的时候子进程只能读子进程写的时候父进程只能读。 只能在有公共祖先的进程间使用管道 常见的通信方式有单工通信、半双工通信、全双工通信  pipe函数无名管道) 当成功调用pipe函数时会创建两个文件描述符fd[0] - 读(rfd[1]- 写(w)之后如果想要向管道写数据就往fd[1]里面写如果想从管道读数据就从fd[0]里面读 如果要关闭管道只需要关闭这两个文件描述符就可以了。 需要添加的库 #include unistd.h 函数原型 int pipe(int pipefd[2]); 函数参数 pipefd[2]表示一个包含两个文件描述符的数组也就是上面提到分别代表读和写的 fd[0] 和 fd[1]返回值若成功返回0失败则返回-1 实操演示 创建一个名为IPC的文件夹关于各种IPC的学习代码都放在这个文件夹下 注意由于fork函数会拷贝一份一样的程序给子进程所以管道的创建应该在fork之前这样父子进程就都有了fd[0]和fd[1]并且由于管道指向内核所以父子进程的fd[0]和fd[1]是相同的。 #include unistd.h #include stdio.h #include string.h #include stdlib.h #include sys/types.h #include sys/wait.hint main() {int fd[2];pid_t fork_return;char *writebuf mjmmjmmm;char readbuf[1024] {0};if(pipe(fd) -1){printf(pipe error\n);}fork_return fork();if(fork_return 0){//fatherclose(fd[0]);//ssize_t write(int fd, const void *buf, size_t count);write(fd[1],writebuf,strlen(writebuf));wait(NULL);}else if(fork_return -1){//errorprintf(fork error\n);}else{//sonclose(fd[1]);//ssize_t read(int fd, void *buf, size_t count);read(fd[0],readbuf,1024);printf(read from pipe:%s\n,readbuf);exit(1);}return 0; } 实现效果 基本概念有名管道 FIFO也称为命名管道它是一种文件类型。 有名管道的特点 FIFO可以在无关的进程之间交换数据与无名管道不同FIFO有路径名与之相关联它以一种特殊设备文件形式存在于文件系统中 mkfifo函数有名管道  需要添加的库 #include sys/stat.h 函数原型 int mkfifo(const char *pathname, mode_t mode); 函数参数 pathname文件路径modemode 参数与open函数中的 mode 相同。一旦创建了一个 FIFO就可以用一般的文件I/O函数操作它 关于open函数中的mode: 其中较为常用的是 S_IRWXU对主用户来说可读可写可执行S_IRUSR对主用户来说可读S_IWUSR对主用户来说可写S_IXUSR对主用户来说可执行 详见Linux 系统编程 开篇/ 文件的打开/创建_mjmmm的博客-CSDN博客 返回值成功返回0出错返回-1 既然可以用一般文件的I/O函数操作它就意味可以使用open来打开而open中的第二个参数flag中有一个选项是“O_NONBLOCK”这是非阻塞标志 若没有指定O_NONBLOCK默认只读 open 要阻塞到某个其他进程为写而打开此 FIFO。类似的只写 open 要阻塞到某个其他进程为读而打开它。 若指定了O_NONBLOCK则只读 open 立即返回。而只写 open 将出错返回 -1 如果没有进程已经为读而打开该 FIFO其errno置ENXIO。 参考进程间通信一管道的pipe函数 FIFO的mkfifo函数_mkfifo 多进程_点灯小哥的博客-CSDN博客 实操演示 FIFO的通讯方式类似于在进程中使用文件来传输数据只不过FIFO类型文件同时具有管道的特性。在数据读出时FIFO管道中同时清除数据并且“先进先出” fifo1.c只读open FIFO并不设“O_NONBLOCK” #include sys/types.h #include sys/stat.h #include stdio.h #include errno.h #include fcntl.hint main() {if(mkfifo(./fifo,S_IRWXU) -1 errno ! EEXIST) //如果创建失败 且 没有已存在的FIFO{printf(mkfifo failed\n);perror(why);}int fd open(./fifo,O_RDONLY); //only readprintf(open success\n);return 0; } 实现效果1 可见由于没有设置O_NONBLOCK且没有进程只写打开FIFO所以只读打开FIFO会一直阻塞 fifo2.c只读open FIFO并设置“O_NONBLOCK” #include sys/types.h #include sys/stat.h #include stdio.h #include errno.h #include fcntl.hint main() {if(mkfifo(./fifo,S_IRWXU) -1 errno ! EEXIST){printf(mkfifo failed\n);perror(why);}int fd open(./fifo,O_RDONLY|O_NONBLOCK); //only readprintf(open success\n);return 0; } 实现效果2 可见由于加上了O_NONBLOCK虽然没有进程只写打开FIFO但是只读打开不会阻塞而是立刻返回并执行了printf  fifo3.c fifo4.c创建两个进程fifo3一直写fifo4一直读 fifio3.c一直写 #include sys/types.h #include sys/stat.h #include stdio.h #include errno.h #include fcntl.h #include string.h #include unistd.hint main() {char *str mjmmmmjjm;int fd open(./fifo,O_WRONLY); //only writeprintf(open success\n);while(1){write(fd,str,strlen(str));sleep(1);}close(fd);return 0; } fifo4.c一直读 #include sys/types.h #include sys/stat.h #include stdio.h #include errno.h #include fcntl.h #include unistd.hint main() {char buf[30] {0};int nread 0;if(mkfifo(./fifo,S_IRWXU) -1 errno ! EEXIST){printf(mkfifo failed\n);perror(why);}int fd open(./fifo,O_RDONLY); //only readprintf(read open success\n);while(1){read(fd,buf,30);printf(read %d byte from fifo,context: %s\n,nread,buf);}close(fd);return 0; } 实现效果3 先编译并运行fifo4.c 可见没有进程只写打开FIFO所以一直阻塞 然后再新的窗口编译并运行fifo3.c 此时有进程只写打开FIFO并每隔一秒向其中写入数据 此时再观察fifo4.c的输出 此时只读FIFO不再阻塞并每隔一秒读到只写FIFO写入的数据  上述例子可以扩展成 客户进程—服务器进程 通信的实例负责写的fifo3.c的作用类似于客户端可以打开多个客户端向一个服务器发送请求信息负责读的fifo4.c类似于服务器它适时监控着FIFO的读端当有数据时读出并进行处理但是有一个关键的问题是每一个客户端必须预先知道服务器提供的FIFO接口下图显示了这种安排
http://www.w-s-a.com/news/872543/

相关文章:

  • 深圳市建设局网站张局北京档案馆网站建设
  • 运动健身型网站开发网站备案掉了什么原因
  • 网站开发的前后端是什么注册网站多少钱一年
  • 彩票网站建设需要什么网站未备案被阻断怎么做
  • wordpress 版权声明网站优化排名哪家性价比高
  • dedecms网站关键词外包做网站平台 一分钟
  • 酒网站建设游戏分类网站怎么做
  • 仿牌网站安全北京大良网站建设
  • ps中怎样做网站轮播图片吉林省网站建设公司
  • 广西网站建设-好发信息网温江做网站哪家好
  • 网站建设属于什么职位类别南京哪个网站建设比较好
  • wdcp 网站备份东莞网站建设五金建材
  • 天津制作网站的公司电话wordpress架设进出销
  • tomcat做静态网站prestashop和wordpress
  • 上海响应式建站wap网站微信分享代码
  • 四川建筑人才招聘网南昌网站优化
  • 南充网站建设制作重庆有的设计网站大全
  • 深圳沙井做网站公司网站搭建谷歌seo
  • 学校资源网站的建设方案山西省住房城乡建设厅网站
  • 医疗行业网站建设深圳网络科技公司排名
  • 企业形象型网站建设wordpress chess
  • 网站的域名起什么好处罗湖网站建设公司乐云seo
  • 网站的服务器在哪里sem推广软件选哪家
  • 科技网站欣赏婚庆公司经营范围
  • 网站后台管理系统php校园网站建设意见表填写
  • 网站建设问题调查常州百度推广代理公司
  • net网站开发学习谷歌优化培训
  • 企业网站公众号广东网站建设方便
  • 2008r2网站建设张店网站建设方案
  • 企业网站首页学生做的网站成品