题目:
#include
static void
sig_alarm(int signo)
{
printf("caught signal %d\n",signo);
return;
}
int
main()
{
FILE *stream;
char buf[100] = {'a','b'};
if (signal(SIGALRM,sig_alarm) < 0)
printf("error");
alarm(1);
sleep(1);
if ((stream = fopen("test.txt","wb")) == NULL )
{
fprintf(stderr,"Can not open output file.\n");
return 1;
}
printf("begin to write...\n");
fwrite(buf,100,1,stream);
printf("write done\n");
fclose(stream);
return 0;
}
在我的测试环境ubuntu10.10 ,Linux2.6.35下,fwrite可以完成。
10.12 写一段调用f w r i t e的程序,要求使用一个较大的缓存区(几个兆),调用f w r i t e前调用a l a r m设置一秒钟以后调度信号量。在信号量处理程序中打印捕捉到的信号量然后返回。f w r i t e可以完成吗?结果如何?
程序(仅供参考)
#include#include
static void
sig_alarm(int signo)
{
printf("caught signal %d\n",signo);
return;
}
int
main()
{
FILE *stream;
char buf[100] = {'a','b'};
if (signal(SIGALRM,sig_alarm) < 0)
printf("error");
alarm(1);
sleep(1);
if ((stream = fopen("test.txt","wb")) == NULL )
{
fprintf(stderr,"Can not open output file.\n");
return 1;
}
printf("begin to write...\n");
fwrite(buf,100,1,stream);
printf("write done\n");
fclose(stream);
return 0;
}
在我的测试环境ubuntu10.10 ,Linux2.6.35下,fwrite可以完成。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7232789/viewspace-688555/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7232789/viewspace-688555/