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赵瀚青