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

嵌入式开发学习———Linux环境下IO进程线程学习(三)

time

time 是 Unix 系统中的系统调用,用于获取当前时间(秒数,从 1970 年 1 月 1 日起)。C 语言中通过 time_t time(time_t *t) 获取,常用于时间戳记录或计时。

#include <time.h>
time_t now = time(NULL); // 获取当前时间

进程

进程是程序的执行实例,拥有独立的内存空间和资源。C 语言中可通过 fork() 创建子进程,或 exec 系列函数加载新程序。进程由内核调度,每个进程有唯一的 PID。

#include <unistd.h>
pid_t pid = getpid(); // 获取当前进程 PID

fork

fork() 是创建子进程的系统调用,调用一次返回两次:父进程返回子进程 PID,子进程返回 0。父子进程代码相同,但内存独立。

#include <unistd.h>
pid_t pid = fork();
if (pid == 0) {// 子进程代码
} else {// 父进程代码
}

作业: 

1.创建一个父子进程,父进程拷贝文件的前一部分,子进程拷贝文件的后一部分

#include <myhead.h>int main(int argc, const char *argv[])
{FILE *fp1=NULL,*fp2=NULL,*fp3=NULL;char buf[1024]="";fp1=fopen("./myfile","r");if(fp1==NULL)ERROR_MSG("fopen error");if(fseek(fp1,0,SEEK_END)!=0)ERROR_MSG("fseek error");int size=ftell(fp1);if(size==-1)ERROR_MSG("ftell error");if(fclose(fp1)==-1)ERROR_MSG("fclose error");pid_t pid=fork();if(pid>0){fp1=fopen("./myfile","r");if(fp1==NULL)ERROR_MSG("fopen error");fp2=fopen("./myfile1","w");if(fp2==NULL)ERROR_MSG("fopen error");for(int i=0;i<size/2+1;i++){char c=fgetc(fp1);fputc(c,fp2);}if(fclose(fp1)==-1)ERROR_MSG("fclose error");if(fclose(fp2)==-1)ERROR_MSG("fclose error");}else if(pid==0){fp1=fopen("./myfile","r");if(fp1==NULL)ERROR_MSG("fopen error");fp3=fopen("./myfile2","w");if(fp3==NULL)ERROR_MSG("fopen error");fseek(fp1,size/2+2,SEEK_SET);for(int i=0;i<size/2-1;i++){char c=fgetc(fp1);fputc(c,fp3);}if(fclose(fp1)==-1)ERROR_MSG("fclose error");if(fclose(fp3)==-1)ERROR_MSG("fclose error");}elseERROR_MSG("fork error");return 0;
}

运行结果:

2.牛客网

 

http://www.lryc.cn/news/609919.html

相关文章:

  • AtCoder Beginner Contest 416 C 题
  • 同质无向加权图:理论基础、算法演进与应用前沿
  • 张宇高数基础30讲与1000题学习笔记(第4-6章)
  • Node.js高并发接口下的事件循环卡顿问题与异步解耦优化方案
  • Lego-Loam TransformToStartIMU TransformToStart TransformToEnd的区别
  • 时序数据库如何高效处理海量数据
  • Node.js(四)之数据库与身份认证
  • Python 数据科学与可视化工具箱 - 数组形状操作:reshape(), flatten()
  • SpringBoot3.0+Vue3.0开源版考试系统
  • 高防服务器租用的作用都有哪些?
  • 【慕伏白】Android Studio 配置国内镜像源
  • 机器学习——基本算法
  • 理解 JavaScript 中的“ / ”:路径、资源与目录、nginx配置、请求、转义的那些事
  • 北斗变形监测技术在基础设施安全中的应用
  • Android JUnit 测试框架详解:从基础到高级实践
  • 2.1 DICOM标准结构与组成
  • Swin-Transformer从浅入深详解
  • 【0基础PS】PS工具详解--钢笔工具
  • 【高等数学】第八章 向量代数与空间解析几何——第一节 向量及其线性运算
  • 三轴云台之增稳技术篇
  • VGMP(VRRP Group Management Protocol)VRRP组管理协议
  • 权限管理命令
  • 【Unity3D】Ctrl+Shift+P暂停快捷键(Unity键盘快捷键)用不了问题快捷键无法使用问题
  • 大型软件系统的主要指标是什么?
  • 抛出自定义异常
  • Linux 进程基础(三):进程是什么、进程的创建与查看
  • 文本转语音(TTS)脚本
  • 基于TurboID的邻近标记质谱(PL-MS)实验指南:从质粒构建到质谱鉴定
  • 【嵌入式电机控制#24】BLDC:霍尔测速(高难度,重理解)
  • 聊聊IT行业初创团队质量管理前期准备