文件 *** 作与进程控制
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
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);
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)