腾讯域名注册网站网站如何快速推广

张小明 2025/12/28 22:31:33
腾讯域名注册网站,网站如何快速推广,杭州市城乡建设网站,男人和女人做哪个网站extern int pipe (int __pipedes[2])上面是函数原型 传入一个字符数组#xff0c;创建两个文件描述符#xff0c;[0]为读端[1]为写端下面给一个代码案例#xff0c;一步步解析过程#include stdio.h #include stdlib.h #include unistd.h #include 创建两个文件描述符[0]为读端[1]为写端下面给一个代码案例一步步解析过程#include stdio.h #include stdlib.h #include unistd.h #include string.h #include sys/types.h #include sys/wait.h int main(int argc, char const *argv[]) { int pipefd[2]; //管道传入的数组 pid_t cpid; //子进程pid if(argc ! 2) { printf(%s 请填写需要传递的信息\n,argv[0]); exit(EXIT_FAILURE); } if(pipe(pipefd) -1) { perror(创建管道失败); exit(EXIT_FAILURE); } //fork创建子进程 cpid fork(); if(cpid -1) { perror(fork); exit(EXIT_FAILURE); } if(cpid 0) { //子进程 close(pipefd[1]); //关闭读端 printf(子进程 %d 收到数据\n,getpid()); char buf; while(read(pipefd[0],buf,1) 0) { write(STDOUT_FILENO,buf,1); } printf(\n); close(pipefd[0]); //关闭读端 _exit(EXIT_SUCCESS); //系统调用关闭子进程无需回收资源 } else { //父进程写数据 close(pipefd[0]); //关闭读端 printf(父进程 %d 写入数据\n,getpid()); write(pipefd[1],argv[1],strlen(argv[1])); close(pipefd[1]); //写完后关闭写端 waitpid(cpid,NULL,0); //等待子进程结束 exit(EXIT_SUCCESS); } return 0; }使用 ./unnamed_pipe_test test 运行代码输出父进程 12259 写入数据子进程 12260 收到数据test交互动画演示1. 文件描述符 (File Descriptor, FD)把文件描述符想象成一个遥控器。内核层操作系统内核维护着真正的“管道”对象实际上是一块内存缓冲区。用户层进程手里拿的pipefd[0]值为3和pipefd[1]值为4只是遥控器上的按钮编号。pipefd[0]是 Read 按钮。pipefd[1]是 Write 按钮。进程不直接操作管道内存只能通过拿着这些号码FD去请求内核read/write。2.fork()时的复制机制这是理解一切的关键。当你调用fork()时操作系统复制了父进程的PCB进程控制块。这其中包含了文件描述符表的拷贝。可以把它想象成复印了一把钥匙。父进程手里有开门访问管道的钥匙子进程复制了一把一模一样的钥匙。虽然有两把钥匙两个不同的进程各自有自己的 FD 表但它们开的是同一扇门指向同一个内核管道对象。3. 引用计数 (Reference Count) —— 管道生命的维持者内核中的管道对象有一个“生命值”这就是引用计数。它记录了“现在有多少个文件描述符指向我”。正常流程fork后写端引用计数 2父进程持有 子进程持有。子进程close(pipefd[1])- 写端引用计数降为 1。父进程写完数据。父进程close(pipefd[1])-写端引用计数降为 0。核心时刻内核检测到写端计数为 0意味着“世界上再也没有人能往这个管道写数据了”。内核向读端发送EOF (End Of File)。子进程的read函数收到 EOF返回 0循环结束程序正常退出。错误流程忘记关闭 closefork后写端引用计数 2。子进程没有关闭写端close(pipefd[1])。父进程写完数据关闭自己的写端 - 写端引用计数降为 1因为子进程手里还捏着一个写端 FD 呢虽然它不用。死锁时刻子进程去read。因为写端计数是 1不是 0内核认为“还有人可能会写数据”所以不发送 EOF。子进程一直傻傻地阻塞在read上等待那个其实就在它自己手里的写端写入数据但它自己由于阻塞在读上永远不会去写。程序挂起Hang。这就是 Linux 进程间通信优雅而严谨的底层逻辑
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

怎么在网站上投放广告seo诊断分析在线工具

嵌入式 Linux 系统调试工具全解析 1. 嵌入式 Linux 调试工具概述 在嵌入式 Linux 系统开发中,软件调试工具的安装和使用至关重要。常见的调试工具众多,涵盖经典的 GDB、拥有图形界面的 Eclipse,以及追踪应用程序、系统行为监视器、性能分析和内存调试工具等。同时,还会简…

张小明 2025/12/26 16:32:05 网站建设

需要上传视频的网站做新闻的网站怎样赚钱

GPT-OSS-20B 与 Qwen3-14B 深度对比:谁更适合你的 AI 应用场景? 在当前开源大模型百花齐放的背景下,选择一个真正“能打”的模型,早已不再只是比拼参数大小。越来越多开发者意识到:推理效率、指令遵循能力、语言专精程…

张小明 2025/12/27 20:19:40 网站建设

优秀网站建设报价杭州开发区建设局网站

计算机组成原理作为计算机科学与技术专业的核心课程,是考研408科目中占比45分的重要内容。根据最新考纲要求,本部分重点考查考生对单处理器计算机系统中主要部件工作原理、组成结构及相互连接方式的理解,以及对指令集体系结构基本知识和实现方…

张小明 2025/12/27 20:19:37 网站建设

python做网站例子icp备案查询工具

蓝奏云直链解析新方案:3步搞定文件下载难题 【免费下载链接】LanzouAPI 蓝奏云直链,蓝奏api,蓝奏解析,蓝奏云解析API,蓝奏云带密码解析 项目地址: https://gitcode.com/gh_mirrors/la/LanzouAPI 还在为蓝奏云文…

张小明 2025/12/27 20:19:34 网站建设

潍坊网站建设招聘电子商务与网站建设报告

函数用于创建C程序的模块。C函数分为两种:有返回值的和没有返回值的。一:有返回值的函数参数传递给函数,函数得到的返回值发送给调用函数。在使用函数之前,C编译器必须知道函数的参数类型和返回值类型。注意:C程序应当…

张小明 2025/12/27 20:19:30 网站建设

深圳企业网站设计建设一个网站可以采用哪几种方案

大模型定制化难题破解:Llama-Factory全面支持Qwen、Baichuan、ChatGLM 在企业级AI应用加速落地的今天,一个现实问题摆在面前:通用大模型虽然强大,但在金融风控、医疗问诊或法律咨询等专业场景中,往往“说不到点子上”。…

张小明 2025/12/27 20:19:27 网站建设