#include<unistd.h>
#include<stdio.h>
#include<sys/mman.h>
#include<fcntl.h>
#include<stdlib.h>
typedef struct{
int integer;
char string[24];
} RECORD;
#define NRECORDS (10)
RECORD record,*mmaped;
void write_mmap_area(){
printf("oh my god ....");
int fd = open("records.dat",O_RDWR);
mmaped = (RECORD*)mmap(0,NRECORDS*sizeof(record),PROT_READ|PROT_WRITE,MAP_SHARED,fd,0);
int i = 0;
for(;i<10;i++){
int j = 0;
printf("此次准备");
for(;j<10;j++){
printf("%d秒后,将开始修改数据...",10-j);
sleep(1);
}
sprintf(mmaped[i].string,"modify : %d ",i);
printf("此次结束");
}
}
int main(){
printf("I am ready!!!");
write_mmap_area();
printf("END");
return 0;
}
用clock()函数来测试下看看哪段代码运行时间长
已经解决,看楼上。出现的问题是,我忘记在printf输出中加入\n了,因为printf是缓冲池满了才输出,
为了让它立刻输出,需要加上\n,读到换行符时就会立刻输出。谢谢你哈。