求多线程下文件的读写操作的解决办法
void   lock_set(int   fd,int   type) 
 { 
 	struct   flock   lock; 
 	lock.l_whence   =   SEEK_SET; 
 	lock.l_start   =   0; 
 	lock.l_len   =   0; 
 	while(1) 
 	{ 
 		lock.l_type   =   type; 
 		if(fcntl(fd,F_SETLK,&lock)   ==   0) 
 		{ 
 			return; 
 		} 
 	} 
 } 
 这个是我用记录锁写的一个函数,但是存在一个问题,就是while循环会浪费大量的CPU资源。 
 希望大家给各提示,谢谢
------解决方案--------------------把if(fcntl(fd,F_SETLK,&lock)改变为 
 fcntl(fd,F_SETLKW,&lock) 
 F_SETLKW 这是F_SETLK的阻塞版本(命令名中的W表示等待(w a i t))。