[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.\n");
}

4.以O_RDWR模式打开FILE,绑定到COMMAND进程的文件描述符FD

[COMMAND] [FD]<>  [FILE]

 

 

猜你喜欢

转载自www.cnblogs.com/yiyide266/p/9974786.html