1. 创建两个进程,分别向一个文件以不同的频率写入:不同数据+时间戳+写入者pid 观察:文件打开动作应该在fork之后还是之前
#include<unistd.h>
#include<stdio.h>
#include<time.h>
#include<sys/types.h>
int main()
{
pid_t pid = fork();
time_t t;
struct tm*sr;
int b = 20;
// FILE * fr = fopen("1.txt","a+")
while(1)
{
if(pid >0)
{
FILE *fr = fopen("1.txt","a+");
t = time(NULL);
sr = localtime(&t);
fprintf(fr,"b = %d,%d-%d-%d,pid =%d\n",b,sr->tm_year,sr->tm_mon,sr->tm_mday,getpid());
fflush(fr);
sleep(1);
}
else if(0 == pid )
{
FILE *fr = fopen("1.txt","a+");
t = time(NULL);
sr = localtime(&t);
fprintf(fr,"b = %d,%d-%d-%d,pid =%d\n",b,sr->tm_year+5,sr->tm_mon+5,sr->tm_mday+1,getpid());
fflush(fr);
sleep(2);
}
}
return 0;
}
2 生成5个进程: 并打印一直输出各自进程的pid号。
#include<unistd.h>
#include<stdio.h>
int main()
{
int j = 0;
for( j ;j<5;j++)
{
pid_t pid = fork();
if(pid > 0)
{
while(1)
{
printf("pid = %d\n",getpid());
sleep(2);
}
}
}
return 0;
}