重定向:
所谓重定向,是指把本来打印在显示器上的内容,通过一定的符号输出到了特定文件中。
用一句话概括重定向的本质就是:把文件描述符组里面的内容覆盖到一个新的文件中。
重定向符号:
> 输出重定向到一个文件或设备 覆盖原来的文件
>! 输出重定向到一个文件或设备 强制覆盖原来的文件
>> 输出重定向到一个文件或设备 追加原来的文件
< 输入重定向到一个程序
简单实现shell中的重定向添加:
-
shell.c:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <fcntl.h>
#define MAX_CMD 1024
char command[MAX_CMD];//定义一个全局数组
//解析命令行输入的命令
int do_face()
{
memset(command, 0x00, MAX_CMD);
printf("[win@localhost shell]&& ");
fflush(stdout);
if (scanf("%[^\n]%*c", command) == 0)
{
getchar