为什么freebsd下的lockf我编译通不过呢.请大家指教
我在freebsd环境下写了个测试锁文件的程序.可是编译的时候通不过去.说 
 arpu_do_test.c:95:   `F_TLOCK '   undeclared   (first   use   in   this   function) 
 arpu_do_test.c:95:   (Each   undeclared   identifier   is   reported   only   once 
 arpu_do_test.c:95:   for   each   function   it   appears   in.) 
 arpu_do_test.c:107:   `F_ULOCK '   undeclared   (first   use   in   this   function)   
 int   mywritefile(const   char   *file_name,const   char   *write_msg,const   char   *create_flag,const   char   *   write_flag) 
 { 
 	FILE   *fp=NULL; 
 	int	lock_flag=0; 
 	int   lock_count=0;  	 
 	if((fp=fopen(file_name, "r "))==NULL) 
 	{ 
 		if(!strcmp(create_flag, "true ")) 
 		{ 
 			if((fp=fopen(file_name,write_flag))==NULL) 
 				return   -1; 
 			fprintf(fp, "%s ",write_msg); 
 			fclose(fp); 
 			return   1; 
 		} 
 	} 
 	fclose(fp);  	 
 L1:	if((fp=fopen(file_name,write_flag))==NULL) 
 		return   -1; 
 	lock_flag=lockf(fileno(fp),F_TLOCK,0L);	 
 	if(lock_flag <0) 
 	{ 
 		lock_count++; 
 		fclose(fp); 
 		if(lock_count> 3); 
 			return   -2; 
 		sleep(1); 
 		fp=NULL; 
 		goto   L1; 
 	} 
 	fprintf(fp, "%s ",write_msg); 
 	lockf(fileno(fp),F_ULOCK,0L); 
 	fclose(fp); 
 	return   0; 
 }   
 是怎么回事呢.请大家指教.谢谢
------解决方案--------------------不好意思,有一个地方写错了 
 lockf是 SYSV的界面 flock是BSD的界面,标准的可移植的调用是fcntl, 
 详情参见: 
 http://docs.sun.com/app/docs/doc/819-7052/6n91ag9rv?l=zh&a=view