快樂蝦的工具箱 0 0 2

2021-05-07 13:21:00 字數 1663 閱讀 5947

經過前段時間的學習,終於理解了

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世界大門。當今 大資料 一詞的重點其實已經不僅在於資料規模的定義,它更代表著資訊科技發展進入了乙個新的時代,代表著 性的資料資訊給傳統的計算技術和資訊科技帶來的技術挑戰和困難,代表著大資料處理所需的新的技術和方法,...