[LINUX]重定向
Posted yiyide266
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[LINUX]重定向相关的知识,希望对你有一定的参考价值。
概要
重定向用于把内容输入到进程的文件描述符中
语法
1.以O_WRONLY|O_CREAT模式打开FILE,绑定到COMMAND进程的文件描述符FD
[COMMAND] [FD]> [FILE]
2.以O_WRONLY|O_APPEND|O_CREAT模式打开FILE,绑定到COMMAND进程的文件描述符FD
[COMMAND] [FD]>> [FILE]
3.以O_RDONLY模式打开FILE,绑定到COMMAND进程的文件描述符FD
[COMMAND] [FD]< [FILE]
示例代码,把文件重定向到stdin,进程内读取文件内容,并且复制到新的文件上:
#include <unistd.h> #include <fcntl.h> #include <string.h> #include <stdio.h> int main(void) { #define BUFFER 4096 char err_1[] = "Opps~an error occurred when copy."; char buf[BUFFER]; short rnum = 0; char copy_1_pth[] = "./c14_copy.dat"; int copy_1_fd = open(copy_1_pth, O_RDWR|O_CREAT, 0777); while((rnum = read(STDIN_FILENO, buf, BUFFER)) != 0){ if(rnum != write(copy_1_fd, buf, rnum)){ write(STDERR_FILENO, err_1, strlen(err_1)); break; } } printf("Okay. "); }
4.以O_RDWR模式打开FILE,绑定到COMMAND进程的文件描述符FD
[COMMAND] [FD]<> [FILE]
以上是关于[LINUX]重定向的主要内容,如果未能解决你的问题,请参考以下文章