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

IO--进程实操

1.创建一个进程扇

#include <051head.h>
int main(int argc, const char *argv[])
{for(int i=0;i<4;i++){pid_t pid=fork();if(pid>0) //父进程{continue;}   else if(pid==0)  //这是子进程{                                                   printf("pid=%d  ppid=%d\n",getpid(),getppid());fflush(stdout);//exit(0);  //退出子进程,刷新缓冲区while(1){//printf("这是子进程。。\n");sleep(1);}}else //fork函数运行失败{ERRLOG("fork error..\n");}}while(1);return 0;
}   

2.创建一个进程链

#include <25051head.h>
int main(int argc, const char *argv[])
{for(int i=1;i<5;i++){pid_t pid=fork();if(pid==0)  //这是子进程{printf("pid=%d  ppid=%d\n",getpid(),getppid());}else if(pid>0) //父进程 {wait(NULL);break;                                                    }else //fork函数运行失败 {ERRLOG("fork error\n");}}return 0;
}

3.请问打印的结果是什么


输出结果:

info1 from child process_2
info1 from child process_1
info1 from parent process
info2 from parent process

4.实现文件的拷贝,父进程拷贝前一部分,子进程拷贝后一部分

#include <25051head.h>
int main(int argc, const char *argv[])
{FILE* fp=fopen("my.txt","r");if(NULL==fp){ERRLOG("fopen error..\n");}fseek(fp,0,SEEK_END);int num=ftell(fp);int n=(num-1)/2;FILE* fd=fopen("my1.txt","w+");if(NULL==fd){ERRLOG("fopen error..\n");                              }char buf[128]="";pid_t pid=fork();if(0>pid){ERRLOG("fork error");}else if(0<pid){fseek(fp,0,SEEK_SET);fseek(fd,0,SEEK_SET);while(n>0){size_t res=fread(buf,1,(n<sizeof(buf))? n:sizeof(buf),fp);if(res<=0){break;}fwrite(buf,1,n,fd);n-=res;}wait(NULL);   // 等待子进程完成}else{fseek(fp,n,SEEK_SET);fseek(fd,0,SEEK_SET);while(n>0){size_t res=fread(buf,1,(n<sizeof(buf))? n:sizeof(buf),fp);if(res<=0){break;}fwrite(buf,1,n,fd);n-=res;}exit(0);}fclose(fp);fclose(fd);return 0;
}

打印结果:

思维导图

http://www.dtcms.com/a/264693.html

相关文章:

  • Vue 使用Ajax异步或同步
  • Node.js v22.5+ 官方 SQLite 模块全解析:从入门到实战
  • LeetCode 377.组合总和IV
  • 【算法】动态规划:python实现 2
  • 【APB协议时序及示例】
  • 2025美国券商交易系统综合开发及解决方案报告:低延迟、全球化与代币化技术赋能机构业务新生态
  • 摄像头AI智能识别工程车技术及应用前景展望
  • 武汉大学机器人学院启航:一场颠覆性的产教融合实验,如何重塑中国智造未来?
  • 【seismic unix数据处理--suvcat】
  • drawRect 触发时机
  • [特殊字符] Excel 提取+图片批量插入 | Python 自动化生成稽查报告 Word 模板
  • ubuntu 22.04 LTS 安装preempt-rt
  • pytorch底层原理学习--JIT与torchscript
  • 开机自动后台运行,在Windows服务中托管ASP.NET Core
  • 企业培训笔记:SpringBoot+MyBatis项目中实现分页查询
  • GraphPrompts:图神经网络领域的提示工程范式革新者
  • 学习笔记(28):随机噪声的原理、作用及代码实现详解
  • CC - Link IE转EtherCAT:石油石化软启动器的“最佳搭子”
  • 电商项目实例:基于Python京东商品API接口数据采集
  • 跨越传统界限:ChatGPT+ENVI/Python/GEE集成实战,覆盖无人机遥感、深度学习、洪水监测、矿物识别填图、土壤含水量评估等
  • 【Web前端】优化轮播图展示(源代码)
  • MDK(Keil MDK)工具链
  • cmake find_package
  • C++ 创建动态库及两种方法调用动态库
  • DINO 浅析
  • 医学+AI教育实践!南医大探索数据挖掘人才培养,清华指导发布AI教育白皮书
  • HarmonyOS应用开发高级认证知识点梳理 (四)状态管理V2应用级状态
  • AutoGen-AgentChat-1-整体了解
  • NestJS 系列教程(一):认识 NestJS 与项目初始化
  • RabbitMQ 高级特性之持久性