經過前段時間的學習,終於理解了
cygwin
的大部分執行機制,只是很遺憾對其
signal
關鍵技術的細節未能完全掌握,以致於依賴於
signal
機制的程式未能正確執行。還是採用老辦法,先轉移陣地,哪天再殺回來,嘿嘿。
先發布乙個階段性的版本,以示咱至少往前挪了一小步。這個版本包括以下內容:
cygwin checkout 2008-09-28
bash 4.0
core-utils 7.6
grep 2.5.4
sed 4.2
diffutils 2.8.1 由於
signal
機制的缺失,
bash
的下述測試指令碼未能與正確結果完全一致:
array coproc cprint dirstack errors execscript extglob glob-test
heredoc herestr ifs-posix intl iquote jobs more-exp nquote2 nquote3
nquote4 posixpat precedence printf read redir rhs-exp rsh set-e
shopt trap type
有興趣的可以到個人資源中下乙個權當玩具:
回顧整個過程,基本實現了當初的乙個主要目標:讓
cygwin.dll
與vs2008
的crt
和平共處!但是為了達到此目的,不得不做了一些犧牲:1、對
cygwin
的所有匯出函式進行了重新命名的處理,比如
open
就變成了
cyg_open
,再由於批量替換的操作,導致了很多的提示字串特別怪異。
2、需要先執行
vs2008
的crt
**,然後再執行
cygwin
的crt
,於是乙個很簡單的
main
函式就變成了:
intreal_main (int argc, char **argv, char** envp);
intmain (int argc, char **argv)
intreal_main (int argc, char **argv, char** envp)
3、雖然可以混合使用
cygwin.dll和vs
的庫,但是當需要使用
fork
的時候,很多東西就只能限制在使用
cygwin.dll
提供的函式。比如記憶體分配,檔案操作等,在不使用
fork
的時候想用哪個都可以,但是如果要使用
fork
機制,則只能使用
cygwin.dll
。乙個比較理想的狀態應該是既允許只使用
cygwin
,也允許混合使用
cygwin和vs
的庫。通過乙個簡單的巨集進行控制。
順便發點感慨,雖然原來對
libc
的內容分類的判斷基本準確,但是真正做完移植,才發現原來對
libc
的認識還是膚淺了一點!真的是不做不知道,一做嚇一跳!
快樂蝦的工具箱 0 0 2
經過前段時間的學習,終於理解了cygwin 的大部分執行機制,只是很遺憾對其signal 關鍵技術的細節未能完全掌握,以致於依賴於signal 機制的程式未能正確執行。還是採用老辦法,先轉移陣地,哪天再殺回來,嘿嘿。先發布乙個階段性的版本,以示咱至少往前挪了一小步。這個版本包括以下內容 cygwin...
enfp工具箱怎麼用 隱喻 你的工具箱
分享一些在心理諮詢中好用的隱喻。在幫助家庭學習新的溝通方式時,我喜歡 工具箱 這個隱喻。顧名思義,工具箱裡裝著各種各樣的工具,不同工具適用於不同場合。有些工具你裝備了未必用得上,但你不會嫌工具太多。學習一種新的方式,彷彿就要替換掉舊的方式。他會擔心失去一些東西,喚起取捨的焦慮。比如,教乙個人拒絕別人...
大資料 工具箱
當前,整個網際網路正在從it時代向dt時代演進,大資料技術也正在助力企業和公眾敲開dt世界大門。當今 大資料 一詞的重點其實已經不僅在於資料規模的定義,它更代表著資訊科技發展進入了乙個新的時代,代表著 性的資料資訊給傳統的計算技術和資訊科技帶來的技術挑戰和困難,代表著大資料處理所需的新的技術和方法,...