LinuxUbuntu文件 *** 作与进程控制

LinuxUbuntu文件 *** 作与进程控制,第1张

文件 *** 作与进程控制

1 文件复制程序

程序功能类似于cp命令,复制一个已存在的文件,源文件和目标文件以程序参数的形式给出。

所需要的头文件:

#include

#include

#include

#include

#include

#include

2 模拟采集环境温湿度数据

在父进程中模拟采集环境温度数据,在子进程中模拟采集环境湿度数据。

 采集数据周期设置

使用sleep函数设置采集周期,进程采集数据后休眠一段时间。

sleep(DWORD seconds);

sleep()函数是以秒为单位的,sleep(1);就是休眠1秒。

模拟数据生成

time函数是C语言获取当前系统时间的函数,以秒作单位,代表当前时间自Unix标准时间戳(1970年1月1日0点0分0秒,GMT)经过了多少秒。

例如使用time(0)%21来模拟采集到的数据。

所需要的头文件:

#include

#include

#include

#include

#include

 文件复制程序源代码

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[])

{

 int fd_src;

 int fd_obj;

 char buf[32] = {0};

 ssize_t size;

 if(argc != 3)

 {

   printf("Usage:%s \n" , argv[0]);

   return -1;

 }

 fd_src = open(argv[1],O_RDWR);

 if(fd_src < 0)

 {

   printf("open is error\n");

   return -1;

 }

 fd_obj = open(argv[2],O_CREAT | O_RDWR,0666);

 if(fd_obj < 0)

 {

   printf("open is error\n");

   return -2;

 }

 while((size=read(fd_src,buf,32))!=0)

 {

   write(fd_obj,buf ,size);

 }

 close(fd_src);

 close(fd_obj);

 return 0;

}

模拟采集数据程序源代码

#include

#include

#include

#include

#include

int main(void)

{

  pid_t pid;

  pid = fork( );

if(pid == -1)

 {

  return -1;

 }

else if(pid == 0)

 {

  printf("子进程pid:%d\n",getpid());

  while(1)

  {

   sleep(2);

   printf("当前温度:%ld\n",time(0)%21);

  }

 }

else

 {

  printf("父进程pid:%d\n",getpid());

  while(1)

  {

   sleep(3);

   printf("当前湿度(%%):%ld\n",time(0)%81);

  }

 }

}

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/872957.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存