文件重定向
定义:将原来从标准输入读取数据的文件操作重新定向为从向其他文件读取数据;将原来要输出到标准输出的内容,从新定向输出到指定的其他文件
文件重定向指令
< //标准输重定向
> //标准输出重定向 清空原先的内容后添加新的内容
>> //标准输出重定向 在原来内容换行下方添加新的内容
dup及dup2函数
int dup(int oldfd);
//复制oldfd的文件描述符
//举个例子:fd=dup(1); 表述向fd所指的文件描述符代表文件中写入数据,实际就是向标准输出(1)写入数据。则结果:写入数据会被打印到屏幕。
int dup2(int oldfd,int newfd);
//将newfd描述符从指向原本的文件,重新修改指向指向到oldfd所指向的文件去。
//如果newfd原先有指向的文件,那么那个文件将会被关闭。close(fd);会被系统调用
模拟shell实现
#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include <sys/wait.h>
#include <ctype.h>
#include "fcntl.h"
int main()
{
while(1)
{
printf("[cq@localhost]$ ");
fflush