青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

QuXiao

每天進步一點點!

  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
  50 隨筆 :: 0 文章 :: 27 評論 :: 0 Trackbacks

在shell中對程序進行重定向很簡單,用<和>符號就可以了,但在自己的程序中怎么實現輸入輸出重定向呢?

先來看看Linux內核中,文件(還是設備)是通過哪些數據結構保存的:

image

每個進程都保存一份文件描述符的表格,每一行又指向file table,然后file table再指向v-node table。v-node table我們可以暫不考慮,暫且把它當作文件的內容。而從process table entry中的file pointer可以指向不同或者相同的file table。原本標準輸入輸出是指向“鍵盤”和“屏幕”這兩個設備的,如果可以將它們指向我們指定的文件,就可以實現重定向了。

先用open()打開需要重定向到的文件,獲取去文件描述符fd,在用dup2()把進程中原先的輸入輸出文件描述符STDIN_FILENO和STDOUT_FILENO重定向至fd,這樣就可以實現輸入輸出重定向了。我想,shell實現重定向也應該是類似的思想,關鍵代碼如下:

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <unistd.h>
#include <sys/wait.h>
#include <sys/resource.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include <fcntl.h>
#include <signal.h>

int main (int argc, char** argv)
{
	if ( argc != 3 )
	{
		printf("usage: inputFile outputFile\n");
		return 1;
	}
	int inFd, outFd;
	//open file descriptor
	inFd = open(argv[1], O_RDONLY);
	if ( inFd < 0 )
	{
		printf("inFd open error!\n%s\n",strerror(errno));
		return 1;
	}
	outFd = open(argv[2], O_CREAT | O_TRUNC | O_RDWR, S_IRWXU | S_IRGRP | S_IROTH);
	if ( outFd < 0 )
	{
		printf("outFd open error!\n%s\n", strerror(errno));
		return 1;
	}

	//change standard input and output
	if ( dup2(inFd, STDIN_FILENO) < 0 )
	{
		printf("inFd dup2 error!\n");
		return 1;
	}
	if ( dup2(outFd, STDOUT_FILENO) < 0 )
	{
		printf("outFd dup2 error!\n");
		return 1;
	}		

	char line[128];
	while ( scanf("%s", &line) != EOF )
	{
		printf("%s\n", line);
	}

	return 0;
}
posted on 2011-02-16 19:53 quxiao 閱讀(1737) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲乱码日产精品bd| 美女国产精品| 91久久久久久久久| 欧美日本一道本| 国产亚洲欧美日韩日本| 亚洲视频一区在线观看| 久久久久久国产精品mv| 亚洲电影免费观看高清完整版在线| 日韩五码在线| 久久av资源网站| 免费一区二区三区| 亚洲欧美日韩一区在线| 欧美日韩一区高清| 亚洲精品一区久久久久久| 国产视频在线观看一区| 亚洲人成啪啪网站| 久久久97精品| 久久久999| 黑人极品videos精品欧美裸| 一本色道久久加勒比88综合| 牛人盗摄一区二区三区视频| 欧美一区91| 欧美亚男人的天堂| 亚洲午夜一级| 亚洲欧美日韩在线综合| 国产美女诱惑一区二区| 午夜精品偷拍| 欧美一区二区高清在线观看| 国产一区再线| 免费中文字幕日韩欧美| 欧美成人免费在线视频| 欧美精品一区二区三区很污很色的 | 国产精品一区久久久| 亚洲在线一区二区| 欧美图区在线视频| 亚洲视频中文字幕| 国产亚洲欧洲| 久久午夜电影| 欧美日韩色婷婷| 久久精品亚洲一区二区| 久久婷婷国产综合尤物精品| 亚洲精品中文字| 欧美中文在线观看国产| 99视频精品在线| 久久精品视频在线播放| 亚洲午夜激情| 欧美剧在线免费观看网站| 久久久夜精品| 蜜桃av一区二区在线观看| 国产精品大片| 亚洲激情欧美激情| 亚洲承认在线| 久久aⅴ国产紧身牛仔裤| 欧美一区二区三区精品| 欧美日韩不卡一区| 欧美韩国在线| 亚洲精品影院在线观看| 久久精品视频在线| 久久狠狠亚洲综合| 国产伦精品一区二区三区高清| 亚洲精品在线观看视频| 亚洲精品中文字幕女同| 欧美理论大片| 亚洲日本免费| 亚洲一区二区毛片| 久久经典综合| 影视先锋久久| 欧美成人嫩草网站| 夜夜夜久久久| 久久久亚洲综合| 最新中文字幕亚洲| 欧美亚洲不卡| 午夜精品久久久久久久99樱桃| 亚洲专区免费| 国产一区二区高清| 蜜桃精品一区二区三区 | 国产精品亚洲综合一区在线观看| 亚洲一区尤物| 久久综合福利| 亚洲视频综合在线| 国产精品三上| 欧美精品在线免费| 久久人91精品久久久久久不卡 | 免费成人高清| 亚洲线精品一区二区三区八戒| 久久久久久国产精品mv| 日韩亚洲国产欧美| 国模精品娜娜一二三区| 欧美日韩国产精品一区二区亚洲 | 午夜精品久久久久久久久| 亚洲国产精品久久久久秋霞不卡| 国产精品电影网站| 欧美大片国产精品| 久久精品国产亚洲精品| 亚洲一级影院| 在线午夜精品自拍| 亚洲精品欧洲| 欧美大片在线看免费观看| 久久综合久久88| 久久免费视频一区| 久久字幕精品一区| 看片网站欧美日韩| 蜜乳av另类精品一区二区| 欧美一级夜夜爽| 久久婷婷麻豆| 亚洲国产老妈| 亚洲精品国精品久久99热| 亚洲成色777777在线观看影院| 久久精品最新地址| 欧美在线一二三区| 免费在线欧美黄色| 亚洲毛片在线看| 亚洲欧美日本日韩| 久久精品综合| 欧美日韩成人在线观看| 国产精品久久国产三级国电话系列| 国产精品色婷婷| 国产伦精品一区二区三区在线观看| 国产欧美在线观看一区| 在线成人激情| 亚洲视频成人| 欧美二区在线播放| 在线视频精品| 久久亚洲高清| av成人国产| 久久亚洲精选| 国产精品亚洲欧美| 狠狠做深爱婷婷久久综合一区| 激情综合亚洲| 久久久久国产成人精品亚洲午夜| 欧美高清在线视频| 性色一区二区| 国产精品福利影院| 亚洲精品国产精品国自产观看| 久久精品国语| 久久中文在线| 国产精品综合网站| 日韩午夜三级在线| 亚洲欧洲精品一区二区| 久久最新视频| 亚洲另类一区二区| 亚洲第一区中文99精品| 欧美国产第一页| 99精品视频免费观看| 一区二区三区回区在观看免费视频| 国产精品久久久99| 欧美在现视频| 欧美一区二区三区在线| 久久人人爽人人爽| 亚洲高清激情| 夜夜嗨av一区二区三区网页| 欧美三级网页| 久久青青草原一区二区| 久久久久一区| 宅男精品视频| 亚洲欧美日韩天堂一区二区| 国产农村妇女毛片精品久久麻豆 | 亚洲自拍偷拍一区| 国产丝袜一区二区| 六月天综合网| 欧美日韩视频在线一区二区观看视频| 亚洲国产精品久久人人爱蜜臀| 国产主播一区二区三区四区| 乱码第一页成人| 国产精品草草| 亚洲国产精品嫩草影院| 国产精品久久久久久久午夜片| 午夜精品视频| 欧美精品福利在线| 欧美亚洲三级| 国产精品久久亚洲7777| 亚洲人成亚洲人成在线观看| 激情视频亚洲| 久久久青草青青国产亚洲免观| 亚洲欧美另类在线| 欧美精品v国产精品v日韩精品| 欧美一区二区三区四区在线观看地址 | 久久精品国产亚洲一区二区三区| 亚洲一二三四久久| 亚洲美女少妇无套啪啪呻吟| 欧美影院在线| 久久成人免费| 国产精品国产馆在线真实露脸 | 久久久一本精品99久久精品66| 欧美三区在线观看| 一本色道久久综合亚洲精品不卡| 亚洲视频久久| 国产精品久久久久久av福利软件| 日韩小视频在线观看专区| 亚洲精品日本| 欧美片第1页综合| 99精品免费视频| 中文国产一区| 国产午夜精品麻豆| 欧美大片在线观看一区二区| 亚洲第一主播视频| 一区二区三区国产盗摄| 国产九九精品| 欧美片第一页| 久久久亚洲精品一区二区三区 |