共有回帖数 0 个
-
#include unistd.h
#include fcntl.h
#include stdio.h
#include stdlib.h
#include sys/types.h
#include sys/stat.h
#include fcntl.h
int main(int argc, char *argv[]){
int fd1;
pid_t pid1;
struct flock *flk;
struct flock *flk1;
flk = (struct flock *)malloc(sizeof(struct flock));
flk1 = (struct flock *)malloc(sizeof(struct flock));
if((flk==NULL) || (flk1==NULL)){
printf("MALLOC FAILD");
exit(-1);
}
char var1[]="aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
char var2[]="ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc";
fd1 = open("ted1",O_RDWR|O_CREAT|O_APPEND,00666);
if( fd1 0){
printf("file fd1 open | creat faile");
exit(-1);
}
pid1 = fork();
if( pid1 0){
printf("fork pid1 faile");
exit(-1);
}
if(pid1 != 0){
fcntl(fd1,F_GETLK,flk);
printf("parent file %hdn",flk-l_type);
flk-l_type=F_SETLK;
flk-l_start=0;
flk-l_len=0;
flk-l_whence=SEEK_SET;
fcntl(fd1,F_SETLK,flk);
write(fd1,var1,sizeof(var1));
printf("parent file %hdn",flk-l_type);
wait();
}
if( pid1 == 0){
fcntl(fd1,F_GETLK,flk1);
printf("cld file %hdn",flk1-l_type);
}
close(fd1);
return 0;
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[root@localhost ~]# ./a.out
parent file 2
parent file 6
cld file 2
结果中,子进程读取文件锁状态为什么是2
楼主 2015-10-07 22:12 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知