最簡單的你 a.out 1.txt
創(chuàng)新互聯(lián)公司專注于吳興企業(yè)網站建設,自適應網站建設,商城網站定制開發(fā)。吳興網站建設公司,為吳興等地區(qū)提供建站服務。全流程按需網站制作,專業(yè)設計,全程項目跟蹤,創(chuàng)新互聯(lián)公司專業(yè)和態(tài)度為您提供的服務
或者用dup2,重定向。
你首先要搞清楚控制臺上的輸出是怎么輸出的,比如說是程序里面printf出來的, 腳本里面echo出來的等等。
然后做一個寫日志的函數代碼那個輸出。也可以把標準輸出的文件描述符dup到你要寫的文件上面。
最簡單的你 a.out 1.txt
或者用dup2,重定向。
函數執(zhí)行,產生的標準輸出,已經再控制臺了,我再把它重定向。
你首先要搞清楚控制臺上的輸出是怎么輸出的,比如說是程序里面printf出來的, 腳本里面echo出來的等等。
然后做一個寫日志的函數代碼那個輸出。也可以把標準輸出的文件描述符dup到你要寫的文件上面。
execvp(args[0], args) 這個函數運行產生的結果。
使用命令重定向操作符可以使用重定向操作符將命令輸入和輸出數據流從默認位置重定
向到不同的位置。輸入或輸出數據流的位置即為句柄。
下表將列出可用的句柄。
句柄 句柄的數字代號 描述
STDIN 0 鍵盤輸入
STDOUT 1 輸出到命令提示符窗口
STDERR 2 錯誤輸出到命令提示符窗口
UNDEFINED 3-9 這些句柄由應用程序單獨定義,并且是各個工具特定的。
數字 0 到 9 代表前 10 個句柄。可以使用命令 Cmd.exe 運行程序并將該程序前 10 個
句柄中的任何一個重定向。要指定想使用的句柄,可在重定向操作符前面鍵入該句柄的
數字。如果未定義句柄,則默認的 重定向輸入操作符是 0,而默認的 重定向輸出
操作符是 1。鍵入 或 操作符之后,必須指定要讀取或寫入數據的位置??梢灾付?/p>
文件名或另一個現有的句柄。
要指定重定向到現有句柄,請使用與 () 字符,后面接要重定向的句柄號
(例如 句柄#)。例如,下面的命令可以將句柄 2(即 STDERR)重定向到
句柄 1(即 STDOUT):
21
下表列出了可用于將輸入和輸出數據流進行重定向的操作符。
重定向操作符 描述
將命令輸出寫入到文件或設備(例如打印機)中,而不是寫在命令提示符窗口或句柄中。
從文件中而不是從鍵盤或句柄中讀入命令輸入。
將命令輸出添加到文件末尾而不刪除文件中的信息。
將一個句柄的輸出寫入到另一個句柄的輸入中。
從一個句柄讀取輸入并將其寫入到另一個句柄輸出中。
| 從一個命令中讀取輸出并將其寫入另一個命令的輸入中。也稱作管道。
默認情況下,可以從鍵盤將命令輸入(即 STDIN 句柄)發(fā)送到 Cmd.exe,然后由
Cmd.exe 將命令輸出(即 STDOUT 句柄)發(fā)送到命令提示符窗口。
重定向輸入 ()
要將鍵盤輸入重定向到文件或設備,請使用 操作符。例如,要從 File.txt 獲取
sort 命令的輸入,請鍵入:
sortfile.txt
File.txt 的內容將以字母順序列表的方式顯示在命令提示符窗口中。
操作符可以打開具有只讀訪問的指定文件名。所以,不能使用該操作符向文件中寫入
信息。例如,如果以 2 啟動程序,則所有試圖讀取句柄 0 的操作都將失敗,因為句
柄 2 最初是以只寫訪問打開的。
注意
0 是 重定向輸入操作符的默認句柄。
重定向輸出 ()
幾乎所有的命令都將輸出發(fā)送到命令提示符窗口。即使將輸出發(fā)送到驅動器或打印機的
命令也會在命令提示符窗口顯示消息和提示。
要將輸出從命令提示符窗口重定向到文件或設備,請使用 操作符??梢栽谠S多命令中
使用該操作符。例如,要將 dir 輸出重定向到 Dirlist.txt,請鍵入:
dirdirlist.txt
如果 Dirlist.txt 不存在,Cmd.exe 將創(chuàng)建該文件。如果 Dirlist.txt 存在,Cmd.exe
將使用 dir 命令的輸出替換文件中的信息。
要運行 netsh routing dump 命令,然后將輸出發(fā)送到 Route.cfg,請鍵入:
netsh routing dumpc:\route.cfg
操作符可以打開具有只寫訪問屬性的指定文件。所以,不能使用該操作符讀取文件。
例如,如果使用重定向 0 啟動程序,則所有試圖寫入句柄 1 的操作都將失敗,因為
句柄 0 最初是以只讀訪問打開的。
注意
1 是 重定向輸出操作符的默認句柄。
復制句柄
重定向操作符 可以將輸出或輸入從一個指定句柄復制到另一個指定的句柄。例如,
要將 dir 輸出發(fā)送到 File.txt 并將錯誤輸出發(fā)送到 File.txt,請鍵入:
dirc:\file.txt 21
復制句柄時,可以復制該句柄原狀態(tài)的所有特性。例如,如果一個句柄具有只寫訪問的
屬性,則該句柄的所有副本都具有只寫訪問屬性。不能將一個具有只讀訪問屬性的句柄
復制到另一個具有只寫訪問屬性的句柄。
使用 操作符重定向輸入和副本
要將重定向輸入操作符 () 與復制操作符 () 一起使用,指定的文件必須已經存在。
如果輸入文件存在,Cmd.exe 將以只讀方式打開該文件,然后將文件中包含的字符作為
輸入發(fā)送到此命令(如同從鍵盤輸入一樣)。如果指定了句柄,Cmd.exe 將指定的句柄
復制到系統(tǒng)現有的句柄中。
例如,要以句柄 0 輸入讀?。?STDIN)的方式打開 File.txt,請鍵入:
file.txt
要打開 File.txt,并在內容排序后將輸出發(fā)送到命令提示符窗口(即 STDOUT),請鍵入:
sortfile.txt
要查找 File.txt,然后將句柄 1(即 STDOUT)和句柄 2(即 STDERR)重定向到
Search.txt,請鍵入:
findfile file.txtsearch.txt 21
要以句柄 0 輸入讀取(即 STDIN)的方式復制用戶定義句柄 3,請鍵入:
3
使用 操作符重定向輸出和復制
如果將輸出重定向到文件且指定了現有的文件名,Cmd.exe 將以只寫方式打開文件并覆
蓋該文件內容。如果指定了句柄,Cmd.exe 將文件復制到現有句柄中。
要將用戶定義句柄 3 復制到句柄 1,請鍵入:
3
要將包括句柄 2(即 STDERR)的所有輸出從 ipconfig 命令重定向到
句柄 1(即 STDOUT),然后將輸出重定向到 Output.log,請鍵入:
ipconfig.exeoutput.log 21
使用 重定向操作符追加輸出
要從命令中將輸出添加到文件末尾而不丟失文件中已存在的任何信息,請使用兩個連續(xù)
的大于號(即 )。例如,下面的命令可以將由 dir 命令生成的目錄列表追加到
Dirlist.txt 文件:
dirdirlist.txt
要將 netstat 命令的輸出追加到 Tcpinfo.txt 的末尾,請鍵入:
netstattcpinfo.txt
使用管道操作符 (|)
管道操作符 (|) 可以提取一個命令的輸出(默認情況下是 STDOUT),然后將其導入另
一個命令的輸入中(默認情況下是 STDIN)。例如,下面的命令將對目錄分類:
dir | sort
在本例中,將同時啟動兩個命令,但隨后 sort 命令會暫停,直到它接收到 dir 命令
的輸出為止。sort 命令使用 dir 命令的輸出作為輸入,然后將輸出發(fā)送到
句柄 1(即 STDOUT)。
合并帶重定向操作符的命令
可以通過合并帶有其他命令和文件名的篩選器命令創(chuàng)建自定義命令。例如,可以使用以
下命令存儲包含“LOG”字符串的文件名:
dir /b | find "LOG" loglist.txt
dir 命令的輸出通過 find 篩選器命令發(fā)送。包含字符串 "LOG" 的文件名作為文件名
列表(例如,NetshConfig.log、Logdat.svd 和 Mylog.bat)存儲在文件
Loglist.txt 中。
要在相同命令中使用多個篩選器,請使用管道 (|) 分隔篩選器。例如,下面的命令將
搜索 C 盤上的每個目錄以查找包含 "LOG" 字符串的文件名,并且在命令提示符窗口中
每次顯示一屏:
dir c:\ /s /b | find "LOG" | more
利用管道 (|) 可以將 Cmd.exe 導向為通過 find 篩選器命令發(fā)送 dir 命令輸出。
find 命令只選擇包含字符串 "LOG" 的文件名。more 命令可以顯示由 find 命令選擇
的文件名(在命令提示符窗口中每次顯示一屏)。有關篩選器命令的詳細信息,請參閱
使用篩選器。
安裝 Acrobat Reader。
然后使用此命令將一個 PDF 文檔打印到 Laserjet 打印機:
#cat mydocument.pdf | acroread -toPostScript | lp -dmylj2200
要只是打印其中的某些頁:
#cat mydocument.pdf | acroread -toPostScript -start 5 -end 15 | lp -dmylj2200
——————————————————————————
實話實說,此命令非我想的,我沒有做過類似任務,這個是某人在用hpunix的時候命令行打印所用的,這里只是鐵一下,good luck
當前 Linux 系統(tǒng)采用兩套軟件配合顯示和管理打印。第一,CUPS(Common Unix Printing
507System,一般 Unix 打印系統(tǒng)),用于提供打印驅動和打印任務管理;第二,Ghostscript,一種
PostScript 解析器,作為 RIP 使用。
CUPS 通過創(chuàng)建并維護打印隊列來管理打印機。如前所述,Unix 下的打印原本是設計成多
用戶共享中央打印機的管理模式的。由于打印機本身比連接到它的電腦要慢,打印系統(tǒng)就需要
對打印任務進行調度使其保持順序。CUPS 還能識別出不同類型的數據(在合理范圍內)并轉
換文件為可打印的格式。
為打印準備文件
作為命令行用戶,盡管打印各種格式的文本都能實現,不過打印最多的,還是文本。
23.3.1 pr - 轉換需要打印的文本文件
前面的章節(jié)我們也有提到過 pr 命令,現在我們來探討一下這條命令結合打印使用的一些選
項。我們知道,在打印的歷史上,基于字符的打印機曾經用過等寬字體,致使每頁只能打印固
定的行數和字符數,而 pr 命令則能夠根據不同的頁眉和頁邊距排列文本使其適應指定的紙張。