• 家庭作业(2.79、10.8、10.9)


    2.79虚拟机代码:

    虚拟机实验结果:

    VC代码截图:

    vc运行结果:

     

    在vc环境下运行NaN的结果与在linux虚拟机中运行的结果相差甚远,不知是何缘故。

    10.8

    由于stat函数和fstat函数在功能上很相似,都是检索文件的信息,只是stat函数以文件名作为输入,而fstat函数是以文件描述符作为输入,所以只需把Stat(argv[1],&stat)改为fstat(atoi(argv[1]),&stat)即可实现功能

    include “csapp.h”

    Int main(int argc,char **argv)
    {
    struct stat stat;
    char type,readok;

    fstat(atoi(argv[1]),&stat);
    if(S_ISREG(stat.st_mode))
    type=”regular”;
    else if(S_ISDIR(stat.st_mode))
    type=”directory”;
    else
    type=”other”;
    if((stat.st_mode & S_IRUSR))
    readok=”yes”;
    else
    readok=”no”;

    printf(“type: %s,read:%s ”,type,readok);
    exit(0);
    }

    10.9

    输入重定向到了foo.txt,然而3这个描述符是不存在的。

    说明foo.txt并没有单独的描述符3。

    所以Shell执行的代码应该是这样的:

    if (Fork() == 0) {/* Child */
    int fd = open("foo.txt", O_RDONLY, 0);
    dup2(fd, 1);
    close(fd);
    Execve("fstatcheck", argv, envp);
    }

    搭档:20135320赵瀚青

     

  • 相关阅读:
    Tarjan 算法 自学整理
    POJ 2395 Out of Hay
    Codevs 1557 热浪
    Codevs 2956 排队问题
    Codevs 1005 生日礼物
    集合
    奇怪的函数
    关押罪犯
    搭积木
    大数据
  • 原文地址:https://www.cnblogs.com/whyfarrell/p/4894776.html
Copyright © 2020-2023  润新知