作者adddream (哆啦A孟)
站内Electronics
标题[问题] 奇怪的c问题
时间Fri Mar 2 16:44:19 2007
int main(void)
{
int fd;
fd=open("hello",O_RDWR | O_CREAT, 0666);
if(fd<0)
{
perror("open");
exit(1);
}
lock_set(fd,F_WRLCK);
getchar();
lock_set(fd,F_UNLCK);
getchar();
close(fd);
exit(0);
}
如上程式,理想的情形应该是,在呼叫lock_set(fd,F_WRLCK)完之後,会因为getchar()
而等待输入,输入完之後街着呼叫lock_set(fd,F_UNLCK),然後在接着由於getchar()
而等待输入,然後停止。
但我试验完之後,发现在呼叫完lock_set(fd,F_UNLCK)之後,程式就停了 =.=。
也就是,第二个getchar()没有作用。
但若此时,我在第二个getchar()在加入一个getchar()之後,成式就可以等待输入了。
but,只会停一次 =.=。意思是说,第一个getchar()不知道那去了。
请问这是为舍压 ???
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.79.88