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

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 閱讀(1748) 評論(0)  編輯 收藏 引用

只有注冊用戶登錄后才能發表評論。
網站導航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            在线看国产一区| 亚洲一区二区三区在线| 欧美69wwwcom| 欧美国产日韩亚洲一区| 日韩一级裸体免费视频| 99国内精品| 国产麻豆日韩| 欧美福利专区| 欧美另类在线播放| 性娇小13――14欧美| 午夜精品视频| 亚洲激情第一区| 999在线观看精品免费不卡网站| 国产精品久久久久av免费| 久久乐国产精品| 欧美成人午夜影院| 午夜亚洲精品| 久久婷婷久久一区二区三区| 亚洲精品一二区| 亚洲欧美日韩国产一区| 亚洲国产91精品在线观看| 99成人精品| 伊人狠狠色j香婷婷综合| 亚洲国产日韩综合一区| 国产精品久久久久毛片大屁完整版| 欧美在线视频在线播放完整版免费观看| 久久青草久久| 欧美在线观看视频在线| 欧美国产大片| 久久天天躁夜夜躁狠狠躁2022| 欧美激情综合五月色丁香| 欧美自拍偷拍午夜视频| 欧美电影免费观看高清完整版| 久久本道综合色狠狠五月| 欧美福利视频在线观看| 久久久久久综合| 国产精品高潮呻吟久久av无限 | 亚洲看片免费| 亚洲欧美中文字幕| 一区二区高清在线观看| 久久精品国产在热久久| 亚洲婷婷综合色高清在线| 亚洲网站在线观看| 久久精品一本久久99精品| 这里只有精品丝袜| 久久综合久久久久88| 欧美在线视频在线播放完整版免费观看 | 日韩视频永久免费观看| 国产在线视频欧美一区二区三区| 99国内精品| 在线亚洲免费视频| 欧美激情一级片一区二区| 亚洲一区二区高清| 在线日韩精品视频| 午夜精品久久久久久久久久久| 一本到高清视频免费精品| 老牛影视一区二区三区| 久久久一本精品99久久精品66| 国产精品盗摄一区二区三区| 亚洲人成艺术| 日韩一级免费观看| 欧美国产三区| 亚洲国产欧美在线人成| 亚洲精品欧美专区| 久久伊人一区二区| 欧美高清视频| 亚洲精品社区| 欧美理论电影网| 亚洲精品久久久久中文字幕欢迎你| 亚洲国产精品毛片| 欧美国产成人在线| 日韩午夜在线播放| 麻豆精品视频| 黄色影院成人| 久久精品免视看| 久久综合网络一区二区| 亚洲国产99| 欧美精品久久一区| 亚洲图片欧美午夜| 久久精品91久久久久久再现| 国产欧美一区二区三区另类精品| 性欧美长视频| 亚洲国产黄色| 午夜精品久久久久久99热| 国产一区在线播放| 免费日韩av片| 一区二区冒白浆视频| 欧美一级电影久久| 亚洲国产高清自拍| 欧美日韩精品在线播放| 亚洲欧美日韩精品久久亚洲区| 久久久久久久尹人综合网亚洲| 亚洲国产精品传媒在线观看| 欧美日韩免费区域视频在线观看| 亚洲视频在线观看网站| 玖玖玖国产精品| 亚洲小说春色综合另类电影| 国产主播精品| 欧美日韩国产成人高清视频| 欧美亚洲一区二区三区| 欧美激情一区二区在线 | 亚洲精品美女久久7777777| 欧美三级电影网| 久久九九99视频| 亚洲精品免费看| 久久久爽爽爽美女图片| 在线综合欧美| 亚洲第一毛片| 国产日本欧美一区二区三区| 欧美成人国产一区二区| 欧美一区日韩一区| av成人免费| 最新日韩中文字幕| 久久这里只有| 欧美一区二区女人| 亚洲午夜伦理| 日韩视频在线免费| 亚洲缚视频在线观看| 国产欧美1区2区3区| 欧美日韩一区二| 欧美va天堂在线| 久久福利电影| 亚洲欧美日韩国产中文在线| 亚洲精品欧洲| 亚洲东热激情| 欧美va天堂va视频va在线| 欧美在线二区| 午夜精品国产更新| 亚洲一区二区三区四区中文| 亚洲精品国产系列| 亚洲国产另类久久精品| 国产自产精品| 国产欧美日韩高清| 国产区亚洲区欧美区| 国产精品久久久久久久久搜平片| 欧美经典一区二区| 欧美激情第一页xxx| 女人色偷偷aa久久天堂| 久久免费视频网站| 久久久久成人精品| 久久亚洲综合色| 久久亚洲一区二区三区四区| 久久久欧美一区二区| 久久久久久久综合色一本| 久久精品在线免费观看| 久久精品道一区二区三区| 久久精品日产第一区二区| 久久国产综合精品| 久久久999精品视频| 久久久天天操| 免费一区视频| 欧美激情网站在线观看| 欧美日韩国产欧美日美国产精品| 欧美日韩国产精品一卡| 国产精品久久一卡二卡| 国产精品一区二区你懂得| 国产亚洲精品成人av久久ww| 国内精品一区二区| 亚洲国产影院| 国产精品99久久不卡二区| 午夜国产精品视频免费体验区| 久久精品国产一区二区三区| 久久嫩草精品久久久精品一| 欧美激情乱人伦| 一区二区高清| 一区二区三区国产精品| 亚洲肉体裸体xxxx137| 亚洲毛片播放| 午夜宅男久久久| 巨乳诱惑日韩免费av| 91久久精品国产91久久性色tv| 99国产精品国产精品久久| 亚洲欧美日韩一区二区三区在线观看 | 宅男噜噜噜66一区二区66| 午夜免费久久久久| 美女啪啪无遮挡免费久久网站| 欧美人体xx| 国产综合自拍| 亚洲视频免费观看| 久久久蜜臀国产一区二区| 亚洲精品看片| 欧美在线视频观看| 欧美日本中文| 伊人久久综合| 欧美一区二区精品在线| 亚洲第一精品电影| 欧美中文字幕在线播放| 欧美日韩国产不卡在线看| 国产一区久久久| 亚洲欧美成人在线| 亚洲国产精品va在看黑人| 香蕉久久久久久久av网站| 欧美精彩视频一区二区三区| 国产在线高清精品| 亚洲一区二区三区四区在线观看| 母乳一区在线观看| 香蕉久久夜色精品国产| 欧美午夜精品久久久久久人妖| 最新国产成人在线观看| 久久久久久久久久久久久久一区 |