营销型网站的优势,中国大规模建设合肥,wordpress头像上传,wordpress后台安全1.利用文件描述符规则实现重定向
文件描述的分配规则:最小没有使用的下标会分给最新打开的文件
正常printf打印是在stdin标准输出显示器打印#xff0c;stdin标准输出显示器的fd是1。
所以只要把显示器文件stdin给关闭#xff0c;再打开一个文件#xff0c;这个文件的 fd…1.利用文件描述符规则实现重定向
文件描述的分配规则:最小没有使用的下标会分给最新打开的文件
正常printf打印是在stdin标准输出显示器打印stdin标准输出显示器的fd是1。
所以只要把显示器文件stdin给关闭再打开一个文件这个文件的 fd根据规则就会是1。
但是在上层printf打印只会向fd为1的文件的缓冲区打印这样就完成了狸猫换太子。
把log.txt的文件描述符打印到log.txt中。 #includeunistd.h#includefcntl.h#includesys/types.h#includesys/stat.h#includestdio.hint main(){close(1);int fd open(log.txt,O_CREAT|O_TRUNC|O_WRONLY,0666);printf(fd:%d\n,fd); return 0; }
运行结果 2.利用dup2实现重定向 新文件fd将变成老文件fd的拷贝就是把stdin,用log.txt给覆盖了。
#includeunistd.h2 #includefcntl.h3 #includesys/types.h4 #includesys/stat.h5 #includestdio.h6 #includeunistd.h7 8 9 int main()10 {1116 int fd open(log.txt,O_CREAT|O_TRUNC|O_WRONLY,0666);\17 dup2(fd,1); 18 printf(fd:%d\n,fd);19 return 0;20 }运行结果