zoukankan      html  css  js  c++  java
  • 课上作业补交 p526/syscalls1

    P526代码检查:
    1 编译运行p524代码,提交运行结果截图
    2 MAXLINE的值是多少?提交Ubuntu中查找这个值的命令和结果截图
    3 p525 eval 函数中调用的Fork()函数需要什么头文件?你是如何查找的?
    4 Fork() 与fork()什么关系?

    1.运行p524代码:
    下载老师所提供的代码,里面包含书上代码和头文件,之后进行编译
    有可能是因为系统和库的原因,gcc命令直接编译无法通过,所以按照老师说得步骤,使用make file进行编译得:

    出现可执行文件shellex,运行得:

    2.使用grep -nr进行查看头文件中MAXLINE的值
    因为我们不知道MAXLINE在哪个头文件中,直接在系统找过于慢,所以要缩小范围
    头文件目录在系统的 /usr/include 目录下,所以输入命令:grep -nr "MAXLINE" /usr/include
    发现MAXLINE的值为8192

    3.p525 eval 函数中调用的Fork()函数需要什么头文件?你是如何查找的?
    使用man -k 进行寻找

    4.Fork() 与fork()什么关系?
    进入fork中查看详细内容

    fork创建一个子进程

    所以Fork()与fork()是父子进程调用的关系

    syscalls1:

    1. 学习xxd的使用,提交至少3个应用截图
    2. xxd的主要功能是什么?需要使用什么系统调用来实现?写出你的推导过程,命令
    3. 写出实现xxd的伪代码

    学习xxd的使用,提交至少3个应用截图

    -v-i

    -ps

    经查询相关资料,xxd的功能如下:

        -a          缺省忽略转换: 使用‘*’替换空行.
        -b          二进数数据转储 (与 -ps,-i,-r不兼容). 默认为16进制.
        -c cols    每行多少列octets(特制8比特的字节). 默认为16列(-i: 12, -ps: 30).
        -E          使用EBCDIC字符集. 默认为ASCII字符集.
        -e          小端模式转储 (与 -ps,-i,-r不兼容).
        -g          在正常输出中,每组八位字节数. 默认为2个 (-e: 4).
        -h          输出此帮助.
        -i          使用C语言文件样式输出.
        -l len      在len个八位字节后停止.
        -o off      在off个偏移量后开始输出.
        -ps         以在行后添加16进制转储内容的格式输出.
        -r          逆向操作: 转换(或修补) 十六进制内容为二进制内容.
        -r -s off   在off个偏移量后开始转换16进制内容为二进制内容
        -s [+][-]seek  start at <seek> bytes abs. (or +: rel.) infile offset.(没看懂)
        -u          使用大写字母进行十六进制表示.
        -v          显示版本: "xxd V1.10 27oct98 by Juergen Weigert".
    

    写出实现xxd的伪代码
    没有完全理解,在学习后再回答。

  • 相关阅读:
    Oracle索引
    Oracle Union Union All 对查询结果集操作
    Oracle表连接
    BIOS + MBR > UEFI + GPT
    Opensource Licenses
    Linux 系统下使用dd命令备份还原MBR主引导记录
    Linux 文件类型笔记
    Linux 分支那么多,这里可以帮你缩小选择范围
    Arch Linux 的休眠设置
    Arch Linux pacman 与其他发行版操作比较
  • 原文地址:https://www.cnblogs.com/ldc175206/p/11851167.html
Copyright © 2011-2022 走看看