博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《CSAPP》(第3版)答案(第十章)
阅读量:4169 次
发布时间:2019-05-26

本文共 1239 字,大约阅读时间需要 4 分钟。

《CSAPP》(第3版)答案(第十章)

P6

fd=4

P7

#include 
#include "csapp.h"int main(int argc, char* argv[]) {
int n; char buf[MAXBUF]; while ((n = Rio_readn(STDIN_FILENO, buf, MAXBUF)) != 0) Rio_writen(STDOUT_FILENO, buf, n); return 0;}

P8

#include 
#include "csapp.h"int main(int argc, char* argv[]) {
struct stat stat; char *type, *readok; int fd; if (argc <= 1) fd = 0; // stdin else fd = atoi(argv[1]); Fstat(fd, &stat); if (S_ISREG(stat.st_mode)) type = "regular"; else if (S_ISDIR(stat.st_mode)) type = "dir"; else type = "other"; if ((stat.st_mode & S_IRUSR)) readok = "yes"; else readok = "no"; printf("type: %s, read: %s\n", type, readok); return 0;}

P9

if (Fork() == 0) {
Dup2(0, 3); Execve("fstatcheck", argv, envp);}

P10

#include 
#include "csapp.h"int main(int argc, char* argv[]) {
int n; rio_t rio; char buf[MAXLINE]; if (argc == 2) {
int fd = Open(argv[1], O_RDONLY, 0); while ((n = Rio_readn(fd, buf, MAXBUF)) != 0) Rio_writen(STDOUT_FILENO, buf, n); exit(0); } Rio_readinitb(&rio, STDIN_FILENO); while ((n = Rio_readlineb(&rio, buf, MAXLINE)) != 0) Rio_writen(STDOUT_FILENO, buf, n); return 0;}

第十章 完

转载地址:http://wfwai.baihongyu.com/

你可能感兴趣的文章
Activity类中7个与活动生命周期回调有关的方法
查看>>
jwt与token+redis,哪种方案更好用?
查看>>
Comparator接口
查看>>
在二叉树中找到一个节点的后继节点
查看>>
寻找第K大
查看>>
String.trim
查看>>
缓存行 伪共享
查看>>
400 : perceived to be a client error 错误
查看>>
Establishing SSL connection without server's identity verification is not recommended
查看>>
扫描包不存在:pojo类找不到
查看>>
c语言中计算数组长度的方法
查看>>
java 数组定义
查看>>
java中的&和&&的区别
查看>>
Java的位运算符
查看>>
BufferedReader与Scanner的区别
查看>>
java String于常量池中的介绍
查看>>
java Text 错误: 找不到或无法加载主类 Text
查看>>
XShell连接ubantu:给ubantu安装ssh
查看>>
c语言的null和0
查看>>
二进制详解:世界上有10种人,一种懂二进制,一种不懂。
查看>>