ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 《APUE》习题 10.12

《APUE》习题 10.12

原创 Linux操作系统 作者:bartfj 时间:2011-03-07 13:58:42 0 删除 编辑
题目:

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/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 《APUE》习题 10.11
请登录后发表评论 登录
全部评论

注册时间:2008-02-17

  • 博文量
    86
  • 访问量
    239134