| レス数が950を超えています。1000を超えると表示できなくなるよ。 |
cygwin使っている人いますか?
[512:505 (2001/07/16(月) 17:11)]
>>509
よく調べた訳じゃないし、cygwinをいじるような技術は全く持ち合わせて
いない程度の人間の言うことだから、割り引いて聞いてほしいのだが、
ashのソースを見ると、built-inの中で、bltin/echo.cとbltin/test.cに
ついては、あたかも独立したプログラムであるかのように分離されて
いるみたいで、
#include "builtin.h"
#deifne main cmdtest
なんて書いてあった。argc,argvなんかもエミュレートしているようだ。
だから、sedも、ファイル関係と名前の衝突に注意すれば、
比較的簡単にbuilt-in化できそうな気がする。ストリームの問題は
クリティカルだが、echoでリダイレクトが効くんだから、ash本体の
ソースの方で標準入出力の切り替えとかやっているはず。
exit()はsetjmp/longjmpでごまかす手がありそうだし。
[513:名無しさん@お腹いっぱい。 (2001/07/17(火) 02:56)]
そういえばWin3.1の頃、Unix like toolsの各コマンドを1つのDLLにぶち
込んで、各exeはDLLのルーチン呼ぶだけのstubになってる奴があったな。
ComWinだったか。
まぁCygwinの場合ボトルネックがfork部分なのは明白なので、それをなん
とかしようと思ったらやっぱりshell builtinにするしかないだろなぁ。
[514:511 (2001/07/17(火) 07:13)]
ちょっとCygwinのFAQを見てみたけどforkのインプリメントかなり
アクロバチックな方法だね。これじゃ遅いよ。
CygwinをNT/Win2000専用にして、CreateProcessじゃなくて、
NtCreateProcessを直接使うようにすれば、CreateProcessで指定できない
パラメータを指定できるようになり、forkをネイティブで実現できる
ようになるからかなり速くなるはず。でもこの辺Undocumentedだから
ちとつらいか。
[515: (2001/07/17(火) 11:27)]
>>508
出来ました。
しかし、こんなGUI画面が出てくるとは思いませんでした。
コンソールアプリなのかと思ってましたよ。
[516:cygwin (2001/07/17(火) 11:50)]
>511
返事が遅れたがフォロー感謝(__)
書き方がまずかったようで申し訳ない。
>>514
Nt*のAPIはOSのバージョンどころかサービスパック程度の違い
でも仕様が変わってたりするんで非常にリスクが高いと思う...
[517:名無しさん@お腹いっぱい。 (2001/07/17(火) 23:03)]
xeyesとかをエクスプローラから実行するとコンソールが出て憂鬱なんですけど、
これを出ないようにすることってできますか?
[518:名無しさん@お腹いっぱい。 (2001/07/18(水) 00:08)]
その xeyes て、どうやって入手したの?
Windows 用の XFree とかについて来るとか?
エクスプローラから起動できるってことは、
mingw gcc でコンパイルしてんのかな。
[519:名無しさん@お腹いっぱい。 (2001/07/18(水) 06:50)]
>Windows 用の XFree とかについて来るとか?
Yes.
[520:名無しさん@お腹いっぱい。 (2001/07/18(水) 08:13)]
cygwinマンセー
とはいえ、くそなCOMMAND.COMのかわりのシェルとしてしか
使ってないが。とはいえ、これだけで十分な価値がある。
ちょい編集したい時とかにもVimまで入ってるし。最高。
ネットワーク関係のコマンドがホトンドはいっていないのは
ちょい萎えたが。
[521:名無しさん@お腹いっぱい。 (2001/07/18(水) 09:00)]
>>517
http://piza.2ch.net/test/read.cgi?bbs=tech&key=990182433&st=53&to=53&nofirst=true
mingw gcc で、"-Wl,--subsystem,windows"
っていうオプションをつけて再コンパイルすれば、
期待の動作をすると思う。
でも面倒だよねぇ。
もっと手っ取り早い方法があるかどうかは知らん。
read.cgi ver5.26+ (01/10/21-)