谷歌推广网站怎么做,环球资源网怎么找客户,建设工程信息化考试报名网站,学生怎么做网站一.dup和dup2 实现重定向
1.文件描述符表 操作系统在管理文件时#xff0c;会管理一张文件描述符表#xff0c;根据打开的文件#xff0c;分配一个文件描述符(int)#xff0c;根据该文件描述符#xff0c;锁定指向该文件的指针#xff0c;从而索取文件。
2.重定向 在li…一.dup和dup2 实现重定向
1.文件描述符表 操作系统在管理文件时会管理一张文件描述符表根据打开的文件分配一个文件描述符(int)根据该文件描述符锁定指向该文件的指针从而索取文件。
2.重定向 在linux中可以使用** 和 命令**来实现重定向将控制台内容输入到文件中它的具体实现就是dup函数。
实际操作中用到的最多是dup2int oldfd int newfd以文件描述符为参数返回被重定向的那个文件描述符。 重定向的原理就是将一个文件描述符的指针重新定位不再指向它原本的指针而是重定位到另一个文件。 通过重定向操作后对进行重定向的这个文件描述符进行的操作就成为了对它重定向的那个文件的操作。
和 的原理就是将 输出设备文件 重定位到 指定文件这样就实现了对指定文件的输入操作。
二.使用fcntl 实现重定向
fcntl函数 fd:文件描述符cmd是宏命令(F_SETFL,F_GETFL等命令), 根据第二个参数也可以具有第三个参数。 使用宏命令 F_DUPFD作为第二参数,第三参数写入一个文件描述符 fcntl(fd , F_DUPFD , nfd) 此函数表示将nfd文件描述符重定向到fd指向的那个文件