LINUX--创建进程+进程显示时间

x33g5p2x  于2021-11-23 转载在 Linux  
字(1.9k)|赞(0)|评价(0)|浏览(584)

1.编写实验程序task1.c创建进程,创建如图所示的进程族亲结构,其中p1是程序启动时由加载程序创建第一个进程。各进程的输出信息分别如下:
p1:I am father process
p11: 当前时间是< 年 月 日 时 分 秒>
p12: I am young brother process
p121:我的学号是<您的学号xxx>
p122:我的姓名是<您的姓名xxx>

参考笔记 linux进程管理
fork创建进程

总代码:

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <time.h>

int main(int argc, char const *argv[])
{
	pid_t pid;
	pid = fork();							//调用fork()函数创建子进程
	if (pid == -1){
		perror("fork error");
		exit(1);
	}
	else if (pid>0){					//父进程
		printf("I am father process:pid=%d\n",getpid());
	}
	else if ((pid=fork()) == 0){					//子进程
		time_t timep;
		time(&timep);
		printf("%s\n",ctime(&timep));
	}
	else if ((pid=fork()) == 0){					//子进程
		printf("i am young brother process\n");
	}
	else if ((pid=fork()) == 0){					//子进程
		printf("我的学号是541913430301\n");
	}
	else if ((pid=fork()) == 0){					//子进程
		printf("我的姓名是chenhao\n");
	}
	return 0;
}

头文件:#include <time.h>

定义函数:char *ctime(const time_t *timep);

函数说明:ctime()将参数timep 所指的time_t
结构中的信息转换成真实世界所使用的时间日期表示方法,然后将结果以字符串形态返回。此函数已经由时区转换成当地时间,字符串格式为"Wed Jun
30 21 :49 :08 1993\n"。

注意:若再调用相关的时间日期函数,此字符串可能会被破坏。

返回值:返回一字符串表示目前当地的时间日期。 相关函数:time, ctime, gmtime, localtime

头文件:#include <time.h>

转自linux c 中时间函数
看看这篇讲解,就懂了ctime

time_t timep;
		time(&timep);
		printf("%s\n",ctime(&timep));

用的函数
char *ctime(const time_t *t)

该函数以原始时间值为参数,并将其转换为一个更易读的本地时间字符串。原始时间是指以格林尼治时间(GMT)1970年1月1日午夜(0点)为纪元,到现在为止的秒数;返回的字符串格式如下: Www Mmm dd hh:mm:ss yyyy,其中Www 为星期,Mmm是以字母表示的月份,dd 为日,hh为时,mm为分,ss为秒,yyyy为年份。

time 函数原型是:
time_t time ( time_t * timer );
参数是能返回 time_t 型对象 的指针 timer ,那里存放着当时时间。
通常可以忽略这个参数,用NULL,直接就获得 当时时间。(1970年1月1 日起算的时间“秒”数)。
time_t timep;
如果 你用别的方法 得到时间,存在 timep中。
time(&timep);
返回 的 就是 timep 里的值。

下面写一个时间函数试试
用的ctime方法

#include <time.h>
#include <stdlib.h>
#include <stdio.h>

int main(int argc, char const *argv[])
{
	time_t timep;
	time(&timep);
	printf("%s\n", ctime(&timep));
	return 0;
}

time(&timep);

是获取现在时间的函数
如果去掉NULL
就是初始时间—那个格林时间

其余的时间方法等待以后遇到了在慢慢研究

相关文章