當前位置:係統粉 > 電腦問答 > 其他問答 > 說係統重定向錯誤!

說係統重定向錯誤!

提問者:sky騷年279  |  瀏覽 次  |  提問時間:2017-03-11  |  回答數量:3

說係統重定向錯誤!(圖1)修複半天修不好!幫忙謝謝了!

已有3條答案
蜜ccccc

蜜ccccc

回答數:36  |  被采納數:41

2017-03-11 10:57:09
方法一:屏蔽掉重定向,使用方法如下:

PVOIDOldValue;
HANDLEhFile=INVALID_HANDLE_VALUE;
BOOLbRet=Wow64DisableWow64FsRedirection(&OldValue;);
if(bRet==TRUE)
{
//doyouwant
Wow64RevertWow64FsRedirection(OldValue);
}但是這種方法在32位係統運行時會報錯:
所以在使用前要先加上是否64位的判斷

typedefBOOL(WINAPI*LPFN_ISWOW64PROCESS)(HANDLE,PBOOL);

LPFN_ISWOW64PROCESSfnIsWow64Process;


BOOLIsWow64()
{
BOOLbIsWow64=FALSE;

fnIsWow64Process=(LPFN_ISWOW64PROCESS)GetProcAddress(
GetModuleHandle(TEXT("kernel32")),"IsWow64Process");

if(NULL!=fnIsWow64Process)
{
if(!fnIsWow64Process(GetCurrentProcess(),&bIsWow64;))
{
//handleerror
}
}
returnbIsWow64;
}返回TRUE代表是64位係統,然後再使用關閉重定向Wow64DisableWow64FsRedirection函數。使用後記得調用Wow64RevertWow64FsRedirection恢複開關方法二:在64位係統下使用SysNative代替System32就可以訪問到真正的System32目錄。這種方法同樣需要先確定係統是否為64位。但由於沒有調用32位不支持的API,至少不會在運行時彈出錯誤提示。
讚 3
淩瀟繎

淩瀟繎

回答數:172  |  被采納數:18

2017-03-11 13:18:29
bash和tcsh都使用大於號(>)進行標準輸出重定向,但tcsh並不使用bash符號2>重定向標準錯誤輸出。在tcsh中,可以使用大於號後麵跟著邏輯與符號(>&)組合來重定向標準輸出和標準錯誤輸出。盡管也可以在bash下麵使用這種符號,但是畢竟不通用。與第8.2.3節中的bash示例一樣,下麵的這些示例引用了兩個文件,其中文件x並不存在,文件y隻包含了一行文本。
tcsh$catxcat:x:Nosuchfileordirectorytcsh$catyThisisy.tcsh$catxy>&holdtcsh$catholdcat:x:NosuchfileordirectoryThisisy.

在這個示例中,cat帶有一個參數y,將字符串發送到標準輸出。而參數x將使cat發送一條錯誤消息到標準錯誤輸出。
與bash不同,tcsh並沒有提供將標準輸出和標準錯誤輸出分別重定向的一個簡單的方法。工作區(work-around)通常提供一種合理的解決方案。下麵的示例在一個子shell中運行帶參數x和y的cat(圓括號確保括號中的命令在子shell中運行,參見第8.2.5節)。在這個子shell中>將標準輸出重定向到文件outfile中。發送到標準錯誤輸出的輸出並沒有被子shell改變,而是發送到父shell,父shell將該錯誤輸出和標準輸出一起發送到文件errfile中。又因為標準輸出已經被重定向,所以errfile將隻包含發送到標準錯誤輸出的內容。
tcsh$(catxy>outfile)>&errfiletcsh$catoutfileThisisy.tcsh$caterrfilecat:x:Nosuchfileordirectory

如果想在後台運行一個慢速的命令,並且不希望它的輸出擾亂終端屏幕,那麼組合和重定向輸出會很有用。舉例來說,因為find工具一般都需要較長時間才能執行完畢,所以將其放在後台執行就是一個很好的辦法。下麵的這條命令在文件係統分層結構中查找名字中包含字符串biblio的所有文件。這條命令在後台運行,並將其輸出發送到findout文件中。因為find工具會向標準錯誤輸出發送報告,說明用戶沒有搜索權限的目錄,所以findout文件不但記錄搜索到的那些文件,還記錄了那些未能搜索的目錄。
tcsh$find/-name"*bib1io*"-print>&findout&

在這個示例中,如果沒有將標準錯誤輸出和標準輸出組合,而是僅僅重定向標準輸出,那麼錯誤消息將出現在屏幕上,文件findout將隻包含搜索到的那些文件。
如果將某條命令在後台執行,並將其輸出重定向到某個文件,那麼可以使用tail帶-f選項來查看輸出。-f選項使tail顯示那些正在被寫入到該文件的文本行:
tcsh$tail-ffindout

要想終止tail命令,按下中斷鍵(通常就是CONTROL+C組合鍵)。
讚 17
淺沙落痕

淺沙落痕

回答數:81  |  被采納數:135

2017-03-11 13:55:36
係統問題,完全可以采用係統還原來解決,在開始搜索框中輸入還原,點擊按照步驟進行還原就可以了,係統還原可以解決大部分的係統設置錯誤或是出現的問題。
讚 8
解決方法
版權信息

Copyright @ 2011 係統粉 版權聲明 最新發布內容 網站導航