UNIXプログラミング質問すれ Part4
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
NGNG前スレ
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html
>>2-20 関連スレ
0002デフォルトの名無しさん
NGNGCygwin使っている人いますか? その11(UNIX板)
http://pc5.2ch.net/test/read.cgi/unix/1076240971/
Cygwin使っている人いますか? Part2(Windows板)
http://pc5.2ch.net/test/read.cgi/win/1052361218/
関連板
http://pc5.2ch.net/unix/
http://pc5.2ch.net/linux/
0003デフォルトの名無しさん
NGNG>1000 名前:デフォルトの名無しさん 投稿日:04/09/22 17:50:58
>まずは自分の脳味噌をどうにかしろよ馬鹿が
それ以前にお前の脳味噌がどうかしてる
氏ね!
0004デフォルトの名無しさん
NGNG>997 名前:デフォルトの名無しさん 投稿日:04/09/22 17:45:48
>unameもそうだけど、
>UNIXって意味不明な名前のコマンドだらけで嫌気が差した
>いいからメニューから全機能選べるようにしろよ
>イミフメコマンド文化なんか続けてるから一向に普及しないんだよ
はgふぇしくどうい!
つーかカテゴリ分けして機能から辿れるようにして欲しいよね!
0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGThe Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
http://www.opengroup.org/onlinepubs/009695399/toc.htm
【必読書】
Advanced Programming in the UNIX(R) Environment
http://www.amazon.com/exec/obidos/tg/detail/-/0201563177/
Unix Network Programming
Vol. 1: The Sockets Networking API, Third Edition
http://www.amazon.com/exec/obidos/tg/detail/-/0131411551/
UNIX Network Programming
Volume 2: Interprocess Communications (2nd Edition)
http://www.amazon.com/exec/obidos/tg/detail/-/0130810819/
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/#Search
GNU Make 日本語リファレンス
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html
0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNG0011デフォルトの名無しさん
NGNG0012デフォルトの名無しさん
NGNG0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGUNIXで挫折って、わかる気がするなあ。
ずっと意味不明なコマンドの文字列打ってたら頭おかしくなりそうだし、
ずっと真っ暗なコンソール眺めてると鬱になりそうじゃん?
かといって思想のまるでないXは、オタ絵とただ沢山コンソール開くしか脳ないし、
こんなの与えても娯楽を常に要求する一般人は見向きもしない。
そもそもWebでしか見掛けない、哀れなOS、というのが一般人の見解だし。
そうそう、最近LindowsがUNIXの印象かなり悪くしたよね。
この事件でUNIXはビジネスで成功できないことがまた証明されてしまったわけだ。
昔からUNIXは関係者同士で常に足を引っ張って成長しない。
お金の匂いしないよね。全然。
そんなOSだから、挫折が常態であるのは必然なんだと思う。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNG0017デフォルトの名無しさん
NGNG0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNGこっちでやれ。
【哲】バッドノウハウについて語るスレ 2【学】
http://pc5.2ch.net/test/read.cgi/unix/1081220183/
0020デフォルトの名無しさん
NGNG0021デフォルトの名無しさん
NGNGとしてそこから得られたmail exchangeを自分のプログラムの中で使用したいのですが,
どうすればいいでしょうか?
0022デフォルトの名無しさん
NGNG002321
NGNGthx!
0024デフォルトの名無しさん
NGNGUNIX使いって貶されると、
すぐ言葉少なになるよね。
もう貶されるのに慣れちゃった?
ちょっと、心をおちつけて。
UNIXを知らなかったあの頃を思い出してごらん。
あの頃の君達は希望に満ち溢れていたよね。
そう、今まで君達は、とっても悪い夢を見ていたんだ。
UNIXなんか捨てて、あの頃見ていた希望を取り戻そうよ!
0025デフォルトの名無しさん
NGNG0026デフォルトの名無しさん
NGNGどうぞ↓
0027デフォルトの名無しさん
NGNG0028デフォルトの名無しさん
NGNGちょっと面白い
0029デフォルトの名無しさん
NGNG他のUNIXにはありますか?
0030デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG0032デフォルトの名無しさん
NGNG0033デフォルトの名無しさん
NGNG0034デフォルトの名無しさん
NGNGelfフォーマットとかの情報ってどっかに日本語で解説ないですか?
ターゲットはLinuxやFreeBSDです。とりあえず。
0035デフォルトの名無しさん
NGNG0036デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JF/JFdocs/archive/ELF-HOWTO.html
http://www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/info-sources.html
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG0039デフォルトの名無しさん
NGNGあれは、おおざっぱんにしか書かれてないのであまり役に立たないかと。
以下がいいと思う。英語だが大丈夫だろ?
Executable and Linking Format (ELF)
ttp://www.skyfree.org/linux/references/ELF_Format.pdf
0040デフォルトの名無しさん
NGNGlibbfdで作るとか。
いまひとつ使いにくいのが難ですが。
0041デフォルトの名無しさん
NGNG0042デフォルトの名無しさん
NGNG0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNGvoid main()
{ char buf[100];
while(gets(buf)){;} /* 1 つ目 */
gets(buf); /* 2 つ目 */
}
で、% echo 1 | a.out したとき、2 つ目の gets() したいのですが、
何か良い方法ありませんか?
お手間かけます、よろしくです。
0045デフォルトの名無しさん
NGNG0046デフォルトの名無しさん
NGNG0047デフォルトの名無しさん
NGNG何やってるのかわからん。。
1つ目でEOF拾ってるのに2つ目がいるのか?
どーでもいいが、mainの返り値はint、getsはバグがあるからfgetsあたりを
使うべきじゃなかったっけ。
0048デフォルトの名無しさん
NGNG0049デフォルトの名無しさん
NGNG0050デフォルトの名無しさん
NGNGa.outで2回目のfgets(gets)をすればいいじゃねーか。
0051デフォルトの名無しさん
NGNGstdinがEOFのとき、rewind()なんて効かないし、どうしよっかなーって
ことだけなの。
0052デフォルトの名無しさん
NGNG二つ目の gets で何を取得したいのよ。
0053デフォルトの名無しさん
NGNGキーボードからの文字。
ちなみに、最初に fd = fcntl(STDIN_FILENO, F_DUPFD, 0);とか、
後から stream = fdopen(open("/dev/stdin", O_RDONLY, 0), "r");も
無理そですね。
0054デフォルトの名無しさん
NGNG0055デフォルトの名無しさん
NGNGそうゆう shell を作れば?
0056デフォルトの名無しさん
NGNG0057デフォルトの名無しさん
NGNG0058 ◆cReQ1pJtI.
NGNG質問させてください。
FTPクライアントのサブセットを作成していますが、
コマンドに対する応答の終了をどのように判断したらいいのか
悩んでいます。
多くのコマンドは1行の応答のようなので、その場合は改行を
見ればいいと思いますが、なかには複数行返ってくるものも
あるし、RFCにも複数行処理しろと書いてあります。
コマンドを送って、応答を待って、次のコマンドを送って、、
ってやれれば簡単でいいなと思ってるんですが、そのためには
応答の終了を知る必要があると思います。
回線状況が悪い場合も想定したいので、タイミングでの処理は
避けたいと思っています。
よろしくお願いします。
0059デフォルトの名無しさん
NGNG0060デフォルトの名無しさん
NGNGRFC本当に読んだ?+
0061 ◆cReQ1pJtI.
NGNGすんませんでした、向こうへ移動します。
0062 ◆cReQ1pJtI.
NGNGttp://x68000.startshop.co.jp/~68user/net/ftp-4.html
ここを紹介してもらって解決しました。お騒がせしました。
0063デフォルトの名無しさん
NGNGstruct sigaction sa;
sigset_t oldset;
sigempty(&sa.sa_mask);
sigaddset(&sa, SIGINT);
sigprocmask(SIG_BLOCK, &sa.sa_mask, oldset);
// ブロックさせたい処理
sigprocmask(SIG_UNBLOCK, oldset, (struct sigaction *)NULL);
しかしこれだと最後のsigprocmask()で失敗した場合、その後SIGINTを
ブロックしたままになってしまうと思うのですが、確実にSIGINTのブロックを
解除するにはどうすればよいでしょうか?
0064デフォルトの名無しさん
NGNG所々書き込みミスしてました。
×sigaddset(&sa, SIGINT); → ○sigaddset(&sa.sa_mask, SIGINT);
sigprocmask()のoldsetは&oldsetです。
0065デフォルトの名無しさん
NGNGつうか普通失敗しないだろ
0066デフォルトの名無しさん
NGNG0067デフォルトの名無しさん
NGNG0068デフォルトの名無しさん
NGNG本当にエラーにならないという確証がmanを見ても得られなかったため
質問するに至りました。sigprocmask()でエラーがほとんどないとしたら
たとえばsigaction()について以下のようなコーディングは冗長と言えるでしょうか?
struct sigaction sa;
int rc;
sa.sa_handler = SignalHandler;
rc = sigaction(SIGINT, NULL, old_sa);
if(rc == SIG_ERR){
// error log;
}else if(old_sa.sa_handler == SIG_DFL){
rc = sigaction(SIGINT, &sa, NULL);
if(rc == SIG_ERR){
// error log;
}
}
0069デフォルトの名無しさん
NGNGprocessが動き始めた時、SIG_DFLであるとは限らないのだが…
0070デフォルトの名無しさん
NGNGSIG_ERRと比較するのも変だと思うのだが。
どうも筋が悪いというか、へんな理解の仕方をしているような気がするね。
0071デフォルトの名無しさん
NGNG以前に既にシグナルハンドラを設定していた場合は、新たにそこで設定しない
ために前の状態を調べています。動作確認した限りではSIG_DFLだったので
この値を使ってしまいました。
プロセス起動時のシグナル動作=OSのデフォルト動作=SIG_DFL
とは限らないということでしょうか?
>>70
manには0かSIG_ERR(-1)となっていたので普通にSIG_ERRを使ってしまいました。
でもsignal.hを見るとSIG_ERRはint型ではなかったため、(int)でキャストして比較しています。
自分でも変な実装していると思うのですが、>>68の例を改善するとしたら
どのような実装になるでしょうか?
0072デフォルトの名無しさん
NGNG-1と比較する
0073デフォルトの名無しさん
NGNG> プロセス起動時のシグナル動作=OSのデフォルト動作=SIG_DFL
> とは限らないということでしょうか?
はい。nohup(1)の実装を見てみてください。
0074デフォルトの名無しさん
NGNG>>70のいう通りに非0と比較すればいいんじゃないの?
if(!rc){
//success
}
とかで
0075デフォルトの名無しさん
NGNGそれ、どのOSのman?
日本語manだったら多分訳者のところでトチ狂ってる。
0076デフォルトの名無しさん
NGNG戻り値が2値しかないので、そのコーディングの方が素直だし見やすい
かもしれません。使うとしたら if(rc) でエラーだけ見るようにします。
>>73
nohupコマンドで実行された場合、プロセス起動時には既にSIGHUPを
無視するようになっているから、SIGHUPに関してはSIG_DFLとは限らない
ということでしょうか?
>>75
例えばAIXのDocumentation Library(英文)です。-1とは書かれていませんが、
ヘッダを見るとそうなっています。たしかこんなだったかと。
#define SIG_ERR (void (*)())-1
Linux(英訳文)だと0か-1となっており、ヘッダはこうなっています。
typedef void (*__sighandler_t) (int)
#define SIG_ERR ((__sighandler_t) -1)
POSIX仕様はどうだったか覚えてないのですが、たしか0か-1だったと思います。
素直に0が成功、それ以外は失敗だとすればいいかもしれません。
0077デフォルトの名無しさん
NGNGUNIXなんて信者絵!
0078デフォルトの名無しさん
NGNGおおう、マジだ。AIXって変態!
というかSIG_ERRの定義は正しいみたいだから多分ドキュメントバグだろうね。
sigprocmaskなんかはちゃんと-1という表現だし。
悪いこと言わんから、
if (rc == 0) { /* OK */ }
のようにコーディングしとき。それがシステムコール共通の使い方だし。
ちなみにAIXと縁のない人向けにAIXのmanより:
Return Values
Upon successful completion, the sigaction subroutine returns a value of 0. Otherwise, a value of SIG_ERR is returned and the errno global variable is set to indicate the error.
今度から>>71の時点で引用してくれると議論が楽。
0079デフォルトの名無しさん
NGNG0080デフォルトの名無しさん
NGNGUNIXは慢性のドキュメント化軽視アンチパターンですから
0081デフォルトの名無しさん
NGNG0082デフォルトの名無しさん
NGNGhttp://www.opengroup.org/onlinepubs/007908799/xsh/sigaction.html
>>77
仕様はかっちり書いてあると思う。
サンプルドキュメントが足りない。ソースを自分で探さないといけない。
AT&T, BSDの昔はソースは良いサンプルコードばかりだったが…
0083デフォルトの名無しさん
NGNG0084デフォルトの名無しさん
NGNG今がひどすぎて昔はさも良かったかの様に錯覚する事
0085デフォルトの名無しさん
NGNG何がおかしいのかわからん
manを見て素直に
if(sigaction() == SIG_ERR){
/* ERROR */
}
とかすればいいのでは?
つーかOKのとき0が返るとは限らんと思うが・・open(2)とか。
0086デフォルトの名無しさん
NGNG> 何がおかしいのかわからん
rc == 0 の代わりに rc == NULL とするくらい変なのだが。
> つーかOKのとき0が返るとは限らんと思うが・・open(2)とか。
そりゃ当たり前だろ。
値を返すんじゃなくて成功不成功のステータスを返すので成功時に0以外を
返すものはないと思うが。
0087デフォルトの名無しさん
NGNGブロック解除を試みますが、失敗したらエラー出力してごめんなさい。
でも処理は続けます。次にこのパスを通ったときに解除されるといいですね。
という実装になってしまいましたが、どうでしょうか?
int rc;
sigset_t set, oldset;
sigempty(&set);
sigaddset(&set, SIGINT);
rc = sigprocmask(SIG_BLOCK, &set, &oldset);
if( rc ){
// error log
}
// ブロックさせたい処理
rc = sigprocmask(SIG_UNBLOCK, &oldset, NULL);
if( rc ){
// error log
}
0088デフォルトの名無しさん
NGNG{
mov dx3,fah
mov al,10000000b
out dx,al
}
上記のようなアセンブルプログラムをGCCに移植したいのですが
エラーが出て困っています。GCC版のプロラムは
asm("movb %%dx,$0x3fah");
asm("movb %%al,$10000000b");
asm("out %%dx,%%al");
エラーメッセージは「bad register name '%%dx'」「bad register name '%%al'」
です。GCC版のプログラムに誤りがあると思うのですがどこが間違っているのでしょうか?
008988
NGNG__asm
{
mov dx,3fah
mov al,10000000b
out dx,al
}
0090デフォルトの名無しさん
NGNG困ってるんですか。それは大変ですね。
0091GNUにやさしい人
NGNG例えば以下の場合は、
asm("movb %%dx,$0x3fah");
↓
asm("movb %dx,$0x3fah");
にしなきゃいけない。
レジスタに'%%'のように2重に指定するのは、
引数をとるような拡張gasを書いた場合なのさ。
引数がいらないような場合は、%は1つでいい。
009288
NGNGレス有難う御座いました。早速%を一つ減らしてコンパイルしたのですが
別のエラーが出てしまいました。
suffix or operands invalid for 'mov'
suffix or operands invalid for 'out'
backward ref to unknown label "10000000"
なにかコンパイルオプションが必要なのでしょうか?
0093デフォルトの名無しさん
NGNG通常の逆になってたと思うけど。
009588
NGNGやはりコンパイル時になにかオプションパラメータを指定する必要があるのでしょうか?
0096デフォルトの名無しさん
NGNG0097GNUにやさしい人
NGNG>警告が出ましたが一応コンパイルは通りました。
一応、その警告を貼ってみれ。
>コンパイラは通りましたが実行するとSegmentation faultとなってしまいました。
>やはりコンパイル時になにかオプションパラメータを指定する必要があるのでしょうか?
むしろ、逆に聞きたいのですけど
そのアプリはgccでコンパイルすれば動くはずのものなのでしょうか?
ちなみに、オプションパラメータうんぬんでSegfalするかどうかは、
まったくありえなくは無いけどまれだと思う。
よほど最適化オプションをキツクしたり、イリーガルなオプションを指定しないかぎり。
とりあえず、"-O0 -Wall -g"オプション(最適化無、警告を表示、デバッグ情報追加)をオプション指定して、
さらに、できるかぎりコンパイル時に出る全ての警告を消すようにしてコンパイルして、
実行したら再度、Segfalしたらgdbでデバッグをすると。
009888
NGNGそんなこと言わないでもうちょっと付き合ってください。
0099デフォルトの名無しさん
NGNG010088
NGNG他人の振りして面白いですか?
>>97
その後いろいろ試してソースを書き換えた結果、エラーは出なくなりました。
しかし実行するとSegmentation Errorが出るのでgdbで追ったところoutの部分で
エラーになっているようです。ちなみにこのコードを加える前は正常にコンパイル
が通り動作していたので他の部分は問題ないと思います。
010188
NGNGasm("mov $0x3fah,%dx");
asm("mov $0x80,%al");
asm("out %al,%dx"); ← Segmentaiton Fault Errが出る
0102デフォルトの名無しさん
NGNG0103デフォルトの名無しさん
NGNG0104デフォルトの名無しさん
NGNGここのスレの住人はアホばっかだな
0105GNUにやさしい人
NGNGちょっと待ってくれよ、そのソース、本当にコンパイル通ったのか?
以下のように修正する必要ある思われ。
asm("mov $0x3fah,%dx");
↓
asm("mov $0x3fa,%dx");
"h"はいらん。
0106デフォルトの名無しさん
NGNGすみません、0x3fahじゃなくて0x03f8でした。
>>102
そうです。
>>104
そのとんでもない間違いを教えて貰えると助かるんですが。
0107デフォルトの名無しさん
NGNG0108デフォルトの名無しさん
NGNG0109Internetデバッガー
NGNGtelnetポート開いて、IPを教えてください。
接続して調べます。
011088
NGNGユーザ名はguestでお願いします
0111デフォルトの名無しさん
NGNG0112デフォルトの名無しさん
NGNG接続してみた。
ずいぶんcoreファイルあるね〜。整理しろよ!
っておい!俺のマシンじゃねーか!
011388の同僚
NGNG今日はもう帰りました。
0114デフォルトの名無しさん
NGNGやり方知らんけど。
0115デフォルトの名無しさん
NGNG0116デフォルトの名無しさん
NGNGioctlはopen/close/read/write以外の操作をデバイスに対して
持たせたいときに使う、「その他いろいろ」インタフェース。
何ができるかは完全にデバイス依存。第2引数に整数でコマンドを渡す。
CDのイジェクトもサウンドのミキサ設定もみんなこれ。
>>115
OSによるが、例えばFreeBSDだとroot権限を持たせれば/dev/ioを開けて、
そのユーザプロセスがI/O操作することを可能にできる。
0117デフォルトの名無しさん
NGNG0119Rubyいst
NGNGつまんねーんだよ
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG双葉ちゃんねる
0122デフォルトの名無しさん
NGNG逝ってみたけどここよりレベル低そうだぞ
0123デフォルトの名無しさん
NGNG直ったとたんおさらばですか。そうですか。
0124デフォルトの名無しさん
NGNG0125デフォルトの名無しさん
NGNG0126デフォルトの名無しさん
NGNG0127デフォルトの名無しさん
NGNG掲示板じゃなくてネットニュースとか見てみたら?
0128デフォルトの名無しさん
NGNGレベル低いヤシってオマエの事ですよ?
0129デフォルトの名無しさん
NGNG0130デフォルトの名無しさん
NGNG0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNGお前って他の質問スレでも下らないレス繰り返してスレ荒らしてるよな。
質問に答える知識がないなら引っ込んでろ。
0133デフォルトの名無しさん
NGNG0134デフォルトの名無しさん
NGNG厨房登場!
0135デフォルトの名無しさん
NGNG0136デフォルトの名無しさん
NGNG0137デフォルトの名無しさん
NGNG見ているのなら答えてくれた人に礼くらいしろ。
0138デフォルトの名無しさん
NGNG礼はそのつどしてるようだが。全然関係ない馬鹿が横槍入れてきた
せいで話がぐだぐだになったんだろ。文句いうなら>>98みたいに
幼稚な真似する馬鹿に言えば?
0139デフォルトの名無しさん
NGNG0140デフォルトの名無しさん
NGNG>>110
>>113
このアホどもにも礼を言えと?
0141デフォルトの名無しさん
NGNG0142デフォルトの名無しさん
NGNG>>95以降に礼を言うべきレスは見当たらないが・・・・
0143デフォルトの名無しさん
NGNG解決したならなにか一言書くべきだろ。
そんなんだから教えて君と(ry
0144デフォルトの名無しさん
NGNG0145デフォルトの名無しさん
NGNG>>107以降は荒らし君のおかげでレスしようがない状態になってるだろ。
とても解決に結びつくようなレスがあるようには見えないし。そもそも
君は何か解決に結びつくようなレスをしたの?
0146デフォルトの名無しさん
NGNG0147デフォルトの名無しさん
NGNGそのわりには煽りだけは入れているようだけどね
0148デフォルトの名無しさん
NGNG煽りいれてるのはお前
0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNGそれをネタと言います。
0152デフォルトの名無しさん
NGNGここはちょっと小難しい事聞くと荒らししかレスして来なくなるし。
0153デフォルトの名無しさん
NGNG0154デフォルトの名無しさん
NGNGまともな質問じゃなくて誰でも答えれるような質問ね。
0155デフォルトの名無しさん
NGNG0156デフォルトの名無しさん
NGNG0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNGそういう君はなんで荒らしするの?
0159デフォルトの名無しさん
NGNGそれとも、回答もらえなかったから逆切れしてるのか。
0160デフォルトの名無しさん
NGNG0161デフォルトの名無しさん
NGNG0162デフォルトの名無しさん
NGNG0163デフォルトの名無しさん
NGNG0164デフォルトの名無しさん
NGNGnice値が下がるとプライオリティはどうなるんだったっけ?
いつまでたっても覚えられん。
0165デフォルトの名無しさん
NGNGまだやんの?粘着厨房。
0166デフォルトの名無しさん
NGNG低いほど高プライオリティ
>>145
荒れてても発端の本人が出てきて、
低姿勢にやれば、大抵収拾はつくけどね。
まあ別にたまにあれるくらいええやろ。
0167デフォルトの名無しさん
NGNGUNIXを知らなかったあの頃を思い出してごらん。
あの頃の君達は希望に満ち溢れていたよね。
そう、今まで君達は、とっても悪い夢を見ていたんだ。
UNIXなんか捨てて、あの頃見ていた希望を取り戻そうよ!
0168デフォルトの名無しさん
NGNG0169デフォルトの名無しさん
NGNGそれだけシステムに優しいということ
0170デフォルトの名無しさん
NGNG妙に偉そうなのが多いいのは何故?
0171デフォルトの名無しさん
NGNG0172デフォルトの名無しさん
NGNGRMSが悪い。
オプソが悪い。
もしUNIXにEmacsが無かったとしたら、
もっと良いOSになってたかもしんない。
もしXなんてものができなかったら、
もっと良いGUIになってたかもしんない。
もしRMSが、GNUが、なかったとしたら・・・
それはきっと、素晴らしい世界。
0173デフォルトの名無しさん
NGNG0174デフォルトの名無しさん
NGNG0175デフォルトの名無しさん
NGNG今、>>169がうまいこと言った。
のに、誰も気づかないのは、うにくすを使う者としてもぐり。
0176デフォルトの名無しさん
NGNGラクダ本に書いてあった
0177デフォルトの名無しさん
NGNGなるほど。
おれ、niceの値はOSがそのプロセスに制御を渡すまでの
待ち時間みたいなものだ、と覚えた。
マイナスがわけわからんけど、覚え方ということでね。
大きければ待ち時間が長くなる=優先度低い、ってイメージ。
0178デフォルトの名無しさん
NGNG0179デフォルトの名無しさん
NGNGその罪は重い。
0180デフォルトの名無しさん
NGNG便利だ、便利だといってそのまま放置、RMSはこれを機に増長し、
UNIXにGNUという悪性ウィルスを感染させる。
このウィルスはオープンソースという馬鹿げた思想を掲げ続け、
この影響でUNIXの発展は停滞し、思想の1つが崩れ去った。
0182デフォルトの名無しさん
NGNG価値が著しく低下した。ただでさえ保護が難しいソフトウェアにGNUは
オープンソースという暴力の強制で業界全体にトドメを刺した。
今やUNIXは自分の首を絞める行為だと理解しない・理解しようとしない、
ソース原理主義者どもの巣窟、隔離施設なのである。
0183デフォルトの名無しさん
NGNG0184172=180=182
NGNGこのぐらいの文ならそらで書けるぞ。
0185デフォルトの名無しさん
NGNG事実誤認だらけなのに
0186デフォルトの名無しさん
NGNGそんなことは問題ではないと
0187デフォルトの名無しさん
NGNG非公開にすることで付与されるソースコードの価値で
維持してるような会社は今後縮小せざるを得ないだろうね。
適正な規模に戻れってこった。
0188デフォルトの名無しさん
NGNG0189デフォルトの名無しさん
NGNG0190デフォルトの名無しさん
NGNG0191デフォルトの名無しさん
NGNGほら、下らんレスにはすぐ食いついてくるw
0192デフォルトの名無しさん
NGNG0193デフォルトの名無しさん
NGNGそんなに88に相手してもらいたいの?粘着君 プ
0194デフォルトの名無しさん
NGNGほら、下らんレスにはすぐ食いついてくるw
0195デフォルトの名無しさん
NGNGレス早っ!ずっと監視してんのか。キモ過ぎ・・・
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNG別にずっと監視しなくても他のスレのレスとか見ながらスレ一覧を更新していれば
このスレが更新されたかどうかなんてすぐにわかるし、べつに変じゃないよ。
あと、「キモ」いという言葉はあまり好きじゃないな。
たとえ自分に当てられた言葉でないとしても良い気分はしないし、私以外にも
そう思っている人がいるだろうね。
0198デフォルトの名無しさん
NGNGずっと煽られ続けるのか?
0199デフォルトの名無しさん
NGNG0200デフォルトの名無しさん
NGNG0201デフォルトの名無しさん
NGNG0202デフォルトの名無しさん
NGNG0203デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1065535118/
0205デフォルトの名無しさん
NGNGどうせ同じ事になるから無駄だと思うけど。UNIXやLinux使ってる人って
自力で学習してる人が多いから他のOS使ってる人に比べて質問する人
を毛嫌いする傾向があるね。
0206デフォルトの名無しさん
NGNGそういう話は次スレでやれ
0207デフォルトの名無しさん
NGNGすみません、図星で気に障りましたか?
0208デフォルトの名無しさん
NGNGあんまり突っ込まれるとわかんないからだよ
なんせUNIXにはグルいないから
UNIX自体どマイナーなのに実際に使うマシンは
さらにその枝の奥の葉だからね
0209デフォルトの名無しさん
NGNG自分以外は全て敵と思え
これがUNIXの正しい運用方法
0210デフォルトの名無しさん
NGNG0211デフォルトの名無しさん
NGNG伝説のM女史みたいな臭いが少しでもしたら激しく嫌われる。
んでM女史傾向のあるやつが質問したら叩かれて、
逆ギレの構図かなw
頭悪いからそのへん自覚も区別もできんのだろうな。
「なんでおれが」って。それ、お前だからだってw
0213デフォルトの名無しさん
NGNGオタク臭い文章・・・。やはりUNIXユーザーってちょっとアレだな
0214デフォルトの名無しさん
NGNG0215デフォルトの名無しさん
NGNGオタクですがなにか?w
ま、馴れ合いたいならそういうところを探すこった。
0216デフォルトの名無しさん
NGNGどっちかというと君が場違い。質問スレで質問したやつ叩いてどうする。
0217デフォルトの名無しさん
NGNGふ〜ん、ここって馴れ合い禁止なんだ。そんな高尚なスレだとは知らなかったよ。
0218デフォルトの名無しさん
NGNG0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNGプログラミング
2ちゃんねる
どれをとってもオタクそのものでは?
0221デフォルトの名無しさん
NGNG意味分からん。馴れ合うなって気軽に質問すんなって事か?
0222デフォルトの名無しさん
NGNG2ちゃんねるを除いて、それらがどうしてオタクなの?
プロだとそういうのは当り前のことじゃないか。
そもそもオタクってどういう意味だ?
0223デフォルトの名無しさん
NGNG>>215みたいに自分の殻に閉じこもってるヤシ
0224デフォルトの名無しさん
NGNG0225デフォルトの名無しさん
NGNG0226デフォルトの名無しさん
NGNGアニメだって、プロならそういうのは当たり前のことだ。
0227デフォルトの名無しさん
NGNG0228デフォルトの名無しさん
NGNGプ
0229デフォルトの名無しさん
NGNG0230デフォルトの名無しさん
NGNG0232デフォルトの名無しさん
NGNG0233デフォルトの名無しさん
NGNG0234デフォルトの名無しさん
NGNG0235デフォルトの名無しさん
NGNG0236デフォルトの名無しさん
NGNG0237デフォルトの名無しさん
NGNG0238デフォルトの名無しさん
NGNG0239デフォルトの名無しさん
NGNGps1/18.curses
ってのを読みましたよ、大昔ですが。
4BSDの/usr/doc下のドキュメントはAT&T由来のものも含めて、
簡潔で優れたものが多かったです。
0240デフォルトの名無しさん
NGNGそういやRMSが事故ったらしい
GPLとともに天に召されてくれ
0241デフォルトの名無しさん
NGNG0242デフォルトの名無しさん
NGNG0243デフォルトの名無しさん
NGNGただ、これ以上話すとFSFに暗殺されてしまうので
話せません。
0245デフォルトの名無しさん
NGNG月詠ヤバイ。
まずOPがデンパ。もうデンパなんてもんじゃない。超デンパ。
デンパとかっても
「ドクロちゃん20冊ぶんくらい?」
とか、もう、そういうレベルじゃない。
何しろネコミミ。スゲェ!なんか単位とか無いの。何坪とか何?fとかを超越してる。ふさふさしてるし超白い。
しかも着脱可能らしい。ヤバイよ、着脱可能だよ。
だって普通は耳とか取れないじゃん。だって自分のペットの耳がだんだん取れていったら困るじゃん。犬の耳が部屋にごろごろとか困るっしょ。
取ったり外したりして、去年の冬はピンと尖った柴犬の耳だったのに、今年の夏はブルドッグのたれ耳とかだったら泣くっしょ。
だから犬耳とか取り外ししない。話のわかるヤツだ。
けどネコミミはヤバイ。そんなの気にしない。着脱しまくり。ネコミミを付けた有用性を検証してもよくわかんないくらい飾りそのもの。ヤバすぎ。
飾りっていたけど、もしかしたらなんか意味あるのかもしんない。でも有意義って事にすると
「じゃあ、見た目の変化以外でネコミミ付けるメリットってナニよ?」
って事になるし、それは誰もわからない。ヤバイ。誰にも分からないなんて凄すぎる。
あと歌詞が超単調。約9水戸黄門。ライトノベルで言うと869馬鹿一。ヤバイ。リピート。銃弾をペンダントが防ぐ間もなく死ぬ。怖い。
それに超意味が無い。超無意味。それに超意味不明。モードとか平気で出てくる。モードて。荒木飛呂彦でも言わねぇよ、最近。
なんつっても月詠はヒロインが凄い。吸血鬼でネコミミ幼女のご主人様とか平気だし。
うちらなんて吸血鬼とかたかだか強キャラとして出てきただけで上手く扱えないからハーフにしたり、意外な弱点を作ったり、夜の街で戦ったりするのに、
月詠は全然平気。吸血鬼をネコミミ幼女として扱ってる。凄い。ヤバイ。
とにかく貴様ら、月詠のヤバさをもっと知るべきだと思います。
そんなヤバイ月詠を描いた有馬啓太郎とか超偉い。もっとがんばれ。超がんばれ。
0246デフォルトの名無しさん
NGNG0247デフォルトの名無しさん
NGNGでも気にせず使ってしまいましょう。
また、_open()とせずに open()としても、エラーにはなりません。
似たようなものにgetch()があります。
これもアンダスコア付き関数ですがgetch()のまま使っても問題ありません。
O_APPENDなどの定数類もアンダスコアがついています。
取ってしまっても差し支えありません。
0248デフォルトの名無しさん
NGNG0249デフォルトの名無しさん
NGNGexit(3)と_exit(2)の違いでも調べてくれ。
これはちゃんと明文化されているから。
POSIXやX/Openに含まれてるからね。
0250デフォルトの名無しさん
NGNG> ネタじゃなければ何なんだよ…
つまりネタということですか。
0251デフォルトの名無しさん
NGNG0252デフォルトの名無しさん
NGNG0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNGttp://www.kumei.ne.jp/c_lang/intro/no_50.htm
0255デフォルトの名無しさん
NGNG0256デフォルトの名無しさん
NGNGこりゃ駄目だ…
このページ書いた人アホ?
0257デフォルトの名無しさん
NGNG>exit(3)と_exit(2)の違いでも調べてくれ。
>これはちゃんと明文化されているから。
サンクス
0258デフォルトの名無しさん
NGNG0259デフォルトの名無しさん
NGNGつか、そのページ、Windowsの話のページだし
0260デフォルトの名無しさん
NGNG0261デフォルトの名無しさん
NGNG0262デフォルトの名無しさん
NGNGVC++でも明文化されてるよ。
http://www.microsoft.com/japan/msdn/library/ja/vclib/html/_crt_exit.2c_._exit.asp
0263デフォルトの名無しさん
NGNGC++版のUNIXシステムコール(signal()など)ってあるんでしょうか
それとのC版システムコールをextern宣言して使っとけば問題ないのかな
0264デフォルトの名無しさん
NGNG0265デフォルトの名無しさん
NGNG0266デフォルトの名無しさん
NGNG詳解UNIXプログラミング
を推します。
0267デフォルトの名無しさん
NGNG0268デフォルトの名無しさん
NGNG0269デフォルトの名無しさん
NGNG0270デフォルトの名無しさん
NGNG0271デフォルトの名無しさん
NGNG信者の戯言だ気にするな。
0272デフォルトの名無しさん
NGNG0273デフォルトの名無しさん
NGNG私は訳本しか読んでいない
0274Ruby!
NGNG0275デフォルトの名無しさん
NGNG笑うな!Ruby厨
0276デフォルトの名無しさん
NGNG略すと、アル厨
0277263
NGNGとりあえずお勧めされた本(詳解UNIXプログラミング)を
探して読んでみます。ありがとうございます。
0278デフォルトの名無しさん
NGNGリファレンスとサンプルコードがあれば十分。
自然言語での適当な解釈は有益なオプションだね。
そもそもシステムコールというのは思想とは違うから原本の厳密な意味理解
は必要ない。
理解すべきはシステムコールの振舞いだよ。
0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0281デフォルトの名無しさん
NGNG0282デフォルトの名無しさん
NGNG>>280の日本語の間違いを指摘せよ
0283デフォルトの名無しさん
NGNG> かなめはかんすうだろ
0284デフォルトの名無しさん
NGNG0285デフォルトの名無しさん
NGNG間違ってるだろ、お前の読み方。
0286デフォルトの名無しさん
NGNG0287デフォルトの名無しさん
NGNGどこから手をつけていいかわかりません。
いいスレがあったら教えてください。
0288デフォルトの名無しさん
NGNGあれらはどっちが先に出来上がったんでしょうか?
0289デフォルトの名無しさん
NGNG両方(ほぼ)同時に成立したものと、一方が先に成立したものがある。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNGopendir
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG0294290
NGNGバーカ。
"CもしくはC++で"
というのが見えないのか?
日本語が分からないなら黙ってろ。
0295デフォルトの名無しさん
NGNGBoostを使えばマルチプラットフォームな記述ができますよ
http://www.kmonos.net/alang/boost/classes/filesystem.html
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG違う
システムコール
0298デフォルトの名無しさん
NGNGちゃんとした日本語で質問しないからこんなことに・・・
0299デフォルトの名無しさん
NGNGライブラリコール
0300デフォルトの名無しさん
NGNGライブラリ関数のセクションにあるから
違うんじゃないの?
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG違うよ。単なるPOSIX関数だ。
0304デフォルトの名無しさん
NGNG人気ですね
0305デフォルトの名無しさん
NGNGこのまま大統領選挙に持ち込む。
0307デフォルトの名無しさん
NGNGさらしあげ
0308デフォルトの名無しさん
NGNG0309デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGでも重すぎ。理想はわかるんだけどね…
0312デフォルトの名無しさん
NGNG広く標準化された規格って、肥大化して重いのが多いよね。
一個人や企業が独自に策定した規格のほうが使えるやつが多いって感じる。
0313デフォルトの名無しさん
NGNGこれって COM を移植するための方法であって、
UNIX に COM システムを導入しているわけではありませんよね。
COM の移植って、そんなに難しいものではないと思うんだけど、
誰も開発しないのかな。。。
0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNGRuby だと UNIX でも COM 使えるの?
0316デフォルトの名無しさん
NGNG検索してたらこんなの出てきた。
http://www.globe.to/~oka326/?Note%2FComonents
0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG0319デフォルトの名無しさん
NGNGそいつに聞いてもなにもわかりませんよ。
0320デフォルトの名無しさん
NGNGじゃああなたが答えてくれるというのですか?
0321デフォルトの名無しさん
NGNGssize_t read (int fd, void * buf, size_t size) {
/* 何か処理 */
}
と定義して、関数mainからこの関数を呼ぶと、
libc内で定義されている関数readではなく、
上記の独自に定義した関数readが呼ばれてしまうのですが、
これってOKなんですか?
システムコール関数を再定義するのって有りなんでしょうか?
0322デフォルトの名無しさん
NGNGそれで問題が起きないのなら、別に構わない。
0323デフォルトの名無しさん
NGNG最悪のバグはいつもユーザの手元で起こるものだ
0324デフォルトの名無しさん
NGNGそういうことを可能にするためにシステムコールはわざわざweak symbolになってたりする
0325デフォルトの名無しさん
NGNGインターポジショニングっていうんだっけ?
0326デフォルトの名無しさん
NGNGまあ・・そう言われればそうなんですが、この場合に自分が
知りたいと考えているのが、
「なぜライブラリ関数なんていう重要な定義が
ユーザ側で再定義可能になっているのか?」
という事でして、出来ればもう少しその地点から進みたいと
思っています。
>>323
おっしゃるとおりです。
>>324
今自分の環境(FreeBSD5.2)で調べてみたのですが、
W read
T _read
となっていました。(libc内で)
>>325
ありがとうございます。愚具ってみます。
0327デフォルトの名無しさん
NGNGこれがUNIXとCの考え方。
70年代前半に現在のシステムの潮流を作った。以前は(ry
0328デフォルトの名無しさん
NGNGCとかの単一の名前空間しかもてない言語では激しく厳禁。
0329デフォルトの名無しさん
NGNG0330デフォルトの名無しさん
NGNGELFとかダイナミックリンクとかのレイヤの話だな。
それに、>324も書いているように、そういうことが禁止されているわけじゃない。
「素人が手を出すな」という意味なら激しく同意だが。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNG他プロセスのAPIをのっとれる訳ではないと思うのだが……。
0333デフォルトの名無しさん
NGNGこっそりLD_PRELOADを仕込んでおいて…
0334デフォルトの名無しさん
NGNG例えば libc_r.so (ユーザレベルのスレッドライブラリ)では、
read()をnon-blocking I/Oとpollシステムコールを使ったルーチンに
置き換えている。
こうすることでユーザレベルでのマルチスレッドを実現しているわけだ。
さらに ports/www/linuxpluginwrapper とかでは
同様なシステムコール等の上書きにより、Linux用の*.soファイルを
FreeBSDネイティブなプロセスにダイナミックリンクして使えるようにするという
芸当をやってたりする。
0335デフォルトの名無しさん
NGNG> 例えば libc_r.so (ユーザレベルのスレッドライブラリ)では、
これはライブラリ全体の置き換えなんでちょっと話がずれたね。
0336デフォルトの名無しさん
NGNG0337デフォルトの名無しさん
NGNG4系ではそうだけど、5,6系統は必要なものだけの置き換えになってますよ。
ライブラリのサイズを比べれば一目瞭然。
0338デフォルトの名無しさん
NGNGある人はいっておりました。
0339デフォルトの名無しさん
NGNGそれ本当?どこらへんが大事なの?
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG0342デフォルトの名無しさん
NGNG0343321
NGNGあれから色々と調べてみようと思い、
結局 /usr/src/lib/libc/ 以下のMakefile を読んでみて、
どのようにライブラリが作られてるのかを調べていました。
・・・結局分かった事は、read.oオブジェクトファイル内で
まず関数_readを定義し、その後
.weak open
.set open, _open
としてシンボル_readの弱いシンボルreadを作っている
という事だけでした。
・・なんか自ら本質から遠ざかってるような気がするんですが。
>>334
>これはライブラリ全体の置き換えなんでちょっと話がずれたね。
いえとんでもないです。ソース眺めている時に、
「libcの隣にlibc_r?しかも同じシンボル(openやread)がある!?」
と思っていたところでした。334さんのおかげで少し理解が出来ました。
おそらくこれが、「インターポジショニング」の効果で、
(Expert C programmingによると)素人が手を出すなという箇所ですよね?
>>336
>pthあたりを例にするのがいいのでは。
すいません。今はそこまで手が回りません・・がいつかは。
>>338
>Cの言語仕様と同じぐらい重要なのがELFの知識
file /usr/lib/lib* とすると "ELF 32-bit 〜" がずらずらと。
ELFの仕様書も読んでみます。
0344gcc
NGNGvoid __f () { ああだこうだ; }
void f () __attribute__ ((weak, alias ("__f")));
0346デフォルトの名無しさん
NGNG0347デフォルトの名無しさん
NGNG0348デフォルトの名無しさん
NGNG0349デフォルトの名無しさん
NGNG発生したときのデフォルトの挙動は似ているけど。
0350デフォルトの名無しさん
NGNG0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGもしまちがってましたら、誘導願います。
でしつもんなんですけれども
shellのなかで aaa*dat (*にはランダムの数字が入る)というような
ファイルのファイル名を取得したいと思っています
存在する場合には正しく取得できるのですが、
しない場合にファイルが存在しませんとのメッセージが大量にはかれて困っております
shellのなかで
filenm=`ls -1 aaa*dat >dev null`として取得しようとしているのですが
やはりそんざいしておりませんとログにでてしまいます。
そうぞうするところ。>は標準出力をかえるためで、
標準エラー出力を利用して、存在していませんとメッセージを出しているので
でるのかなと想像しているのですが、いきずまってしました。
正しいファイルが存在する際には代入、存在しないときは何のメッセージも
出力されないようにしたいのですが、何か良い方法はないでしょうか?
よろしくおねがいします。
0353デフォルトの名無しさん
NGNGB-shell系なら
ls -1 aaa*dat 2>&1 >/dev/null
#2番(stderr)を1番(stdout)に振り替えてから元の1番と一緒に/dev/nullに振り替え
C-shell系なら
ls -1 aaa*dat >& /dev/null
#標準エラー出力を標準出力と一緒に/dev/nullに振り替え
0354デフォルトの名無しさん
NGNG0355352
NGNG>>353さん
ありがとうございました。試してみます。
0356デフォルトの名無しさん
NGNG0357デフォルトの名無しさん
NGNG0358デフォルトの名無しさん
NGNGzsh 使えよ
0359デフォルトの名無しさん
NGNGerrnoにEINTRが返されますが、この時に受信したシグナルの値を取得する
ことは可能でしょうか?
0360デフォルトの名無しさん
NGNGint
main()
{
char *tmp= "a";
const char *tmp2= "b";
strcat(tmp,tmp2);
return 0;
}
というソースを書いたのですがSegmentation faultになってしまいます。
strcatの使い方に間違いがあるのでしょうか?
分かる方お願いします。
0361デフォルトの名無しさん
NGNG0362デフォルトの名無しさん
NGNGこちらの実行環境に問題があるということですかね?
0363デフォルトの名無しさん
NGNG先にお礼言っておくべきでした。
ありがとね。
0364デフォルトの名無しさん
NGNG次の点で二重に間違っている。
* 文字列リテラルを変更しようとしている
* strcatで追加する分の空間を割り当ててない
UNIX以前の問題だこれは。
0365デフォルトの名無しさん
NGNG問題は二つあります。まず一つ目
char *p = 'string';
式に確保した文字列は中身をいじっちゃいけません。
なぜ? といわれるかもしれませんがそういうものなのです(規格です)。
二つ目。
tmpの指してる先はどれくらいのメモリを確保できてますか?
それは、tmp2の内容を繋げてあふれない量ですか?
# もっとも一つ目の方の違反だけを指摘すりゃいいんだろうけど。
0366デフォルトの名無しさん
NGNGお二人ありがとう。
>strcatで追加する分の空間を割り当ててない
メモリを再び、確保しなくてはいけないんですね。
やりかた調べてみます。
0367デフォルトの名無しさん
NGNGおまえのプログラムはこれで充分
int main()
{
return 0;
}
0368デフォルトの名無しさん
NGNG文字列をシングルクォートで囲むなよ。Perlじゃあるまいし。
0369360
NGNG{
char *tmp=(char *)malloc(22);
char *tmp2= "a";
char *tmp3= "b";
strcat(tmp,tmp2);
strcat(tmp,tmp3);
return 0;
}
とりあえずこれでいいのかな。
それにしても、このスレの質問はレベルの高い質問ばかりですね。
お邪魔しました。
0370デフォルトの名無しさん
NGNGstrcat(tmp,tmp2);
strcat(tmp,tmp3);
あとfreeな(この場合はしなくても結果は同じだが)
0371デフォルトの名無しさん
NGNGC言語やめてVBとかにしなさい
というわけでUNIXやめなさい
0372デフォルトの名無しさん
NGNGzshだと、
zsh$ (setopt NULL_GLOB; files=aaa*.dat; for i in $files; do echo $i; done)
こうなのかな? 一つも存在しない時うまく働かないね。
0373デフォルトの名無しさん
NGNGstrcpy(tmp, tmp2);strcat(tmp, tmp3);
か
sprintf(tmp, "%s%s", tmp2, tmp3);
にしろよ。
0374デフォルトの名無しさん
NGNG0375デフォルトの名無しさん
NGNG0376デフォルトの名無しさん
NGNGいまどき strncpy/strncat なんて使ったらダメだってば。
OpenBSD/NetBSD/FreeBSD/Solaris にはあるよ > strlcpy/strlcat
0377デフォルトの名無しさん
NGNGだいたいバグの温床になるのがオチ
0378デフォルトの名無しさん
NGNGいるからね。strl*が出来てだいぶましになった。
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNG0381デフォルトの名無しさん
NGNGダデャーナザーン!!
アウア
0382デフォルトの名無しさん
NGNG仕様確認すんの面倒だから長さの判定が必要ならmemcpy使うし。
結局strlcpy と strlcatもstrnと同じ問題抱えてる。
strcat使う局面でバッファ管理するぐらいなら↓を使う。
s = strdup("hage");
s = strdupcat(s, "hage");
s = strdupcat(s, "hage");
s = strdupcat(s, "hage");
#define strdupcat2(s,cat1,cat2) strdupcat(strdupcat((s),(cat1)),(cat2))
#define strdupcat3(s,cat1,cat2,cat3) strdupcat(strdupcat2(s,cat1,cat2),(cat3))
#define strdupcat4(s,cat1,cat2,cat3,cat4) strdupcat(strdupcat3(s,cat1,cat2,cat3),(cat4))
strdupcat(s,cat) {
int catlen = strlen(cat);
if (s) {
int slen = strlen(s);
s = xrealloc(s, slen + catlen + 1);
memcpy(s + slen, cat, catlen);
*(char *)(s + slen + catlen) = 0;
} else {
s = xcalloc(1,catlen+1);
memcpy(s, cat, catlen);
*(char *)(s + catlen) = 0;
}
return s;
}
0383デフォルトの名無しさん
NGNGx〜は確保できなかったら例外投げるラッパ。
メモリリークチェッカも兼ねてるが。
0384デフォルトの名無しさん
NGNGこんなのが普及するとか言ってるUNIX使いマジ低脳。
0385デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/library-c.html
これ見るとちょっと設計者の頭弱いかも。
使う気になる人いるんだろうか。
複雑性増えて混乱度高めただけというか。
まあstrn*系は使わないのが吉。
0386デフォルトの名無しさん
NGNGそれいいねえ。
LISPのconsっぽい。
どのみちstrcatでバッファオーバーする場合は別途何かしら処理するのが普通だから、
strlcat通すのはあんま意味ないかも。
そこまでするなら事前に文字列の長さ測れ、と。
途中でちょん切られても困る場合がほとんどだろうしね。
0387デフォルトの名無しさん
NGNGかなり使われている(OpenBSD と NetBSD のかなりの部分は strl* で書
き直されている)し、ISO でも次期 C に strcpy_s strcat_s として入
れるよう議論してるみたいですよ。
strn* のクセがわかっている人は strl* を使う必要はないけど、多人
数で開発するなら strn* をわかってない人がいることも想定して、
strl* にするのが安全です。
0388デフォルトの名無しさん
NGNGまさにそれ。
用途を想像できてないんだよな。
strn*も含めてstrlcpyやstrlcatは消えるべき。
何時使うんだよこれ。
勝手にチョン切られて良い局面なんてあるか?
>>387
相変わらずUNIX使い頭悪すぎだな。
まあおれが言うまでも無くいまだにコマンドラインベースで
物考える奴の頭の程度なんて知れてるけどさ。
strlに書き直されたって、OS書くのにわざわざそんな危ない事してるとは呆れるね。
きっとOpenもNetもさ、いまだにどっちも仕事で聞いた事ないから
超ドマイナーなんだろうね。
0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNG自分の無知を棚に上げて(ry
0391デフォルトの名無しさん
NGNGもういっこ突っ込んどくと、
>strn* をわかってない人がいることも想定して、
こんな想定無意味。
おれならstrn*とか使ってたらメンテしにくくなるから書き直せって言うけどね。
0392デフォルトの名無しさん
NGNG反論するならちゃんと最後まで言えよ低脳。
0393デフォルトの名無しさん
NGNG何度も無駄にくりかえされるstrlenがダサすぎ。
0394デフォルトの名無しさん
NGNGありゃりゃ。
ほんと低脳だな。
無駄なstrlenなんて1つもないんだが。
ところで、strlcpyやstrlcatっていつ使うの?(笑
0395デフォルトの名無しさん
NGNG0396デフォルトの名無しさん
NGNG0397デフォルトの名無しさん
NGNG低脳クン、
あと何か無駄なとこあるかな?(笑
しいて無駄って箇所を上げるとすれば、xcallocのゼロ初期化だな。
あそこはxmallocで良い。
まあ即興で作った例だから本質とは無関係な部分だけどね。
0398デフォルトの名無しさん
NGNGいいよいいよー(笑
そうだよね、いまどきCなんて低脳。
でもUNIXっていまだにCなんだよね。
なんでだろうね(大笑
0399デフォルトの名無しさん
NGNGCのようでCでない不思議な構文
0400デフォルトの名無しさん
NGNG普通のCだと思うが。
0401デフォルトの名無しさん
NGNG0402デフォルトの名無しさん
NGNG0403デフォルトの名無しさん
NGNG結局誰もstrl*の使い道思いつかないし。
自分もちょっとstrnとかは避けたい。
0404デフォルトの名無しさん
NGNG0405デフォルトの名無しさん
NGNGstrlcatに書き換えたって、どこ書き換えたの?>>387
0406デフォルトの名無しさん
NGNGうわ、
やっぱり反論できないから、こんどは手のひらを返したかのように擁護レスがちらほら(笑
>>404なんて自分を見失ってるし(禿笑
なんなんだお前ら。
面白すぎだぞ!
0407デフォルトの名無しさん
NGNG0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGほんと謎だねえ(笑
どこかきかえたのでちゅか?>>387
>>407
残念ながらこの板がテリトリーなんだよ。
>>408
どうがんがるんでちゅか?
0410デフォルトの名無しさん
NGNG0411デフォルトの名無しさん
NGNG0412デフォルトの名無しさん
NGNGおれもC++使えれば>>382みたいなのは作らんがなあ。
でもここUNIXスレだし、しかも元がstrcatの話だったしでね、
Cでわかりやすくノウハウを伝授したつもりなんだがねえ。
さすが低脳集団を抱えるスレは違うわ。
>>411
いや、Rubyなんて関係ないじゃん(笑
そろそろstrlcatの使い道とやらを聞かせてくださいよー
0413デフォルトの名無しさん
NGNG0414デフォルトの名無しさん
NGNG0415デフォルトの名無しさん
NGNGMTUに収まるようなUDPに文字列詰めるときとか
あとは高速化のためにmallocの代わりに固定長バッファを
バラバラともらうようなライブラリ使わされたときとか。
0416デフォルトの名無しさん
NGNGうぷぷpppp
判り易過ぎる自演どもでしたー!
あのさ、strl*の使い道聞いてただけなのに
UNIXスレ君だけになっちゃったよ(笑
もうどうしようもないね、ここ。
>>415
うーん、それはstrlcpyやstrlcatの用途ではないな。
書き込んでない残りの文字数を把握する必要があるでしょ?
それ別途計算するの?
strl*の例としては無理やり使ってるとしか思えないな。
もうちょっと説得力のある使い道ないの?
0417デフォルトの名無しさん
NGNG0418デフォルトの名無しさん
NGNGバーフローを防ぎつつ動き続けることのほうが優先される場合に strl*
を使うですよ。
foolproof なんだから、fool でない人にメリットがないのは当然。
0419デフォルトの名無しさん
NGNGいやfoolだとして、なんでわざわざmemcpyじゃなくてstrl*使うのかな、と。
>>418みたいな局面ならそもそも\0終端文字列なんて出番ないし。
つーかstrl*が必要な局面教えてちょーだいよ、ってさっきから言ってるんだけどね…。
パフォーマンス考えても得体の知れないstrl*よりはmemcpyの方が期待できるし。
0420デフォルトの名無しさん
NGNG途中で切られたデータを元に動きつづけるの?
0421デフォルトの名無しさん
NGNGstrl*は馬鹿が自己満足で作ったクソ関数です。
0422デフォルトの名無しさん
NGNG0423デフォルトの名無しさん
NGNGつまりさ、strlcpyとstrlcatはどっかのキモデブアニオタOpenBSD信者がろくに
開拓されていないクソマイナーOSなことをいいことに自分の自己主張のためだけに
一般公開してISOに提案したはいいけど相手にされず馬鹿にされて反論できなくて
くやしくて泣きながら盗んだバイクにガスが入ってなくて結局徒歩で走り出した
あの日15の夜、ということでいいです。
0424デフォルトの名無しさん
NGNGstrlcpy|catはあんまり意味ないね
0425デフォルトの名無しさん
NGNG0426デフォルトの名無しさん
NGNG418とか無茶苦茶なこと言ってるし。
0427デフォルトの名無しさん
NGNG理解力が足りないですね。
0428デフォルトの名無しさん
NGNG0429デフォルトの名無しさん
NGNGstrl* が「必要」なんて言ってる奴はいないんじゃ?
0430デフォルトの名無しさん
NGNGそんなのstrn*が必要な局面に決まってるだろ。
0431デフォルトの名無しさん
NGNGRuby >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> C
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGイラネ
0434デフォルトの名無しさん
NGNGstd::string使えよ
0435デフォルトの名無しさん
NGNG何か(考えが)浅いな
0436デフォルトの名無しさん
NGNG深い英知を聞かせてもらおう
0437デフォルトの名無しさん
NGNG新しい知識を一切勉強することなしに定年まで乗り切るんだよ
最新のものに手を出し始めたらきりがないからな
0438デフォルトの名無しさん
NGNGあぁ、ごめん、私はプログラマじゃないんだ。
あまり古いことにしがみついていたら論文の一つも書けないんだよ。
もっとも、君が言うのはプログラミングの「テクニック」に関する事だろうけれど。
0439デフォルトの名無しさん
NGNG0440デフォルトの名無しさん
NGNG0441デフォルトの名無しさん
NGNGCを捨ててRubyだけが生き残ることはありえない。
0442デフォルトの名無しさん
NGNG0443デフォルトの名無しさん
NGNG0444デフォルトの名無しさん
NGNG0445デフォルトの名無しさん
NGNG汚れ仕事は一部の人間だけで十分だ。
0446デフォルトの名無しさん
NGNGアセンブラに対してそれを言うなら分かるが
C にはあてはまらんでしょ
0447デフォルトの名無しさん
NGNGいや、言語のことじゃなくてプログラマそのもののことを言っているのじゃないかな
0448デフォルトの名無しさん
NGNG0449デフォルトの名無しさん
NGNGRuby以外の言語はケロ!!!!!!!!
0450デフォルトの名無しさん
NGNG「Ruby以外の言語は消えろ!」
(その願い、叶えよう)
次の瞬間、Rubyインタプリタのソースが消えてしまった!
0451デフォルトの名無しさん
NGNG0452デフォルトの名無しさん
NGNG0453デフォルトの名無しさん
NGNG今日もRubyを使える幸せに震える毎日です。
Ruby以外の言語はもういらない。
全てのシステムはRubyで記述されなければならない。
0454デフォルトの名無しさん
NGNGRuby製Rubyインタプリタを作れば無問題
0455デフォルトの名無しさん
NGNG実際そうだよな。
0456デフォルトの名無しさん
NGNGRubyだと不満な用途はたくさんあるだろうに。
0457デフォルトの名無しさん
NGNGこんな基地外に付きまとわれて
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNG0460デフォルトの名無しさん
NGNGいい加減しつこい奴等だな。
0461デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGCでやるなら、こんななんちゃってじゃなくて、
glibのgstring.h使った方がいい。
0463デフォルトの名無しさん
NGNG0464デフォルトの名無しさん
NGNGglibなんてリンクするかよボケ(^^)
0465デフォルトの名無しさん
NGNGもっとUNIXスレらしい話すれ
0466デフォルトの名無しさん
NGNG0467デフォルトの名無しさん
NGNG0468デフォルトの名無しさん
NGNG0469デフォルトの名無しさん
NGNG0470デフォルトの名無しさん
NGNG0471デフォルトの名無しさん
NGNG0472デフォルトの名無しさん
NGNG0473デフォルトの名無しさん
NGNG0474デフォルトの名無しさん
NGNG0475デフォルトの名無しさん
NGNG0476デフォルトの名無しさん
NGNG0477デフォルトの名無しさん
NGNG0478デフォルトの名無しさん
NGNG#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
こういう個所があったのですが、このdo{...}while何を意味しているんでしょうか?
0479デフォルトの名無しさん
NGNGif (x) macro(a); else hoge();
と書いても誤動作しない。(forやwhile等でも同じ)
0480デフォルトの名無しさん
NGNGあー、なるほど。
あとlist.hを見ていて思ったのは、ある構造体の定義に
struct list_head {struct list_head *next, *prev;};
という構造体そのもの(ポインタではない)を入れておいて、
この値に他の構造体のstruct list_headのアドレス値を入れて
各要素間の関係を表すのは分かりましたが、ここから、
その構造体のメンバのアドレスはどうやって取得したらいいんでしょうか?
0481デフォルトの名無しさん
NGNGstruct list_head list;
/* ユーザ定義データ */
};
みたいな感じで使う。
0482デフォルトの名無しさん
NGNGlinux/device.h にはdevice_driver構造体のような
struct device_driver {
char* name;
struct bus_type* bus;
struct semaphoreunload_sem;
struct kobjectkobj;
struct list_headdevices;
というようにlist_headが構造体の頭にないものもありました。
他にもこういうものはあるようです。この場合、次のオブジェクトの
devicesのアドレスから、どうやって"name"や"bus"といったメンバの
値を取得したらいいのでしょうか。
っていうかソース読んできます。
0483デフォルトの名無しさん
NGNGstruct device_driver {
char * name;
struct bus_type * bus;
struct semaphore unload_sem;
struct kobject kobj;
struct list_head devices;
struct module * owner;
int (*probe)(struct device * dev);
int (*remove)(struct device * dev);
void (*shutdown)(struct device * dev);
int (*suspend)(struct device * dev, u32 state, u32 level);
int (*resume)(struct device * dev, u32 level);
};
0484デフォルトの名無しさん
NGNGlist.hのlist_entryマクロだろう。
0485デフォルトの名無しさん
NGNG[[[ linux/stddef.h ]]]
#undef offsetof
#ifdef __compiler_offsetof
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE *)0)->MEMBER)
#endif
[[[ linux/kernel.h ]]]
#define container_of(ptr, type, member) ({\
const typeof( ((type *)0)->member ) *__mptr = (ptr);\
(type *)( (char *)__mptr - offsetof(type,member) );})
[[[ linux/list.h ]]]
#define list_entry(ptr, type, member) \
container_of(ptr, type, member)
こんな感じに使うみたいです。
struct device_driver * nextdd = list_entry(p_dd->next, struct device_driver, devices);
0486デフォルトの名無しさん
NGNG0487485
NGNG#define list_entry(ptr, type, member) \
((type *)((char *)(ptr)-(unsigned long)(&((type *)0)->member)))
なんで2.6でああいう面倒な形になったのか分かる人はいますか?
0488デフォルトの名無しさん
NGNG0489デフォルトの名無しさん
NGNG#include <sys/types.h>
#include <unistd.h>
pid_t getpid(void);
0490デフォルトの名無しさん
NGNGいかにもマニュアルからコピペしたけど空白消すのめんどくさかった感じがいいね.
0491デフォルトの名無しさん
NGNG「そんなんCじゃないだろ」「うっせー、ここはUNIXスレだ。POSIXだってOKだろ」
「ふざけんな、"Cで〜"って書いてあんだろ」
って質問者無視した罵りあいが読めなかったのは残念だが。
0492デフォルトの名無しさん
NGNGそんなんCじゃないだろ
0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG0495デフォルトの名無しさん
NGNG0496デフォルトの名無しさん
NGNG0497デフォルトの名無しさん
NGNG0498デフォルトの名無しさん
NGNG0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNG0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGできる
0503デフォルトの名無しさん
NGNG0504デフォルトの名無しさん
NGNGsysctl や /proc/cpuinfo で取れるカモ
0505デフォルトの名無しさん
NGNG作成したいんですが、ディレクトリ内のファイル一覧を取得するシステムコール
とかライブラリは有りませんか?
0506デフォルトの名無しさん
NGNG「既にファイルが存在していたら書き込み用オープンに失負する」て
開き方のがあったと思うが忘れた。たしか fopen() か open()。
0507デフォルトの名無しさん
NGNG0508デフォルトの名無しさん
NGNGopen(2): O_EXCL | O_CREAT
fopen(3)は駄目。FILE *にしたければ、open(2)してから、fdopen(3)
0509デフォルトの名無しさん
NGNG一覧を取得する必要はないんでないかい?
fname = 最初の名前
for (i = 0; stat(fname, ...) == 0; i++) {
fname = 最初の名前に i を混ぜたもの;
}
fp = fopen(fname, ...);
0510デフォルトの名無しさん
NGNG506のそれは考えましたが、すでに連番でファイルが多数あると遅くなりそうだったので。
man opendirで出てきたscandirで出来そうです。
返答ありがとう。
0511デフォルトの名無しさん
NGNG「失負」ってなに?
0512デフォルトの名無しさん
NGNG0513デフォルトの名無しさん
NGNGお二人もどうもです。
>>512
scandirのこと?
というか調べるにはひとつひとつ照合していかないといけない、
他に方法は無いのは当り前ですね。
そこに気付かなかった、我ながら阿呆でした。
scandirはむしろソートしたりで509のが良さそうなので509のやります。
0514デフォルトの名無しさん
NGNGfname = 最初の名前に i を混ぜたもの;
}
と
fp = fopen(fname, ...);
の間でfnameと同じ名前を持つファイルを作られたら・・・
まあまずそんなことは起きないと思うけど。
0515デフォルトの名無しさん
NGNGそれだとレース状態が存在する。O_EXCLが正解。
0516デフォルトの名無しさん
NGNG0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG0519デフォルトの名無しさん
NGNG0520505&510
NGNGと勘違いしていて508が??でした。
manちゃんと読んで今はきちんと理解できました。
皆さんありがとう。
ところで
Advanced Programming in the UNIX(R) Environmentって日本語訳版は無いんですか?
0521デフォルトの名無しさん
NGNG詳解UNIXプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4894713195/
0522デフォルトの名無しさん
NGNG0523デフォルトの名無しさん
NGNG普通にatoiとsprintfじゃだめなのか?
0524デフォルトの名無しさん
NGNGgmp
0525デフォルトの名無しさん
NGNG0526デフォルトの名無しさん
NGNGUNIXではできないんじゃないかなあ
0527デフォルトの名無しさん
NGNGどうやるんですか?
0528デフォルトの名無しさん
NGNG0529デフォルトの名無しさん
NGNG0530529
NGNG0531デフォルトの名無しさん
NGNG0532デフォルトの名無しさん
NGNG16進表示
0533デフォルトの名無しさん
NGNG0534デフォルトの名無しさん
NGNGもっと詳しく
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNGDESCRIPTION
The strtoul() function converts the string in nptr to an unsigned long
value. The strtoull() function converts the string in nptr to an
unsigned long long value. The strtoumax() function converts the string
in nptr to an uintmax_t value. The strtouq() function converts the
string in nptr to a u_quad_t value.
sprintfがありなのだkら、sscanfもありですか?
0537デフォルトの名無しさん
NGNG0538デフォルトの名無しさん
NGNG0539デフォルトの名無しさん
NGNGstrtoll() は C99 の規格に含まれていて、
現役の UNIX 系 OS になら、たぶんどれにでもある。
表示の方は 529 の言う通り。
>>532
529でなにか問題が?
0540デフォルトの名無しさん
NGNGどちらの言語の方が性能、機能的に効率が良いのでしょうか?
0541デフォルトの名無しさん
NGNG腕次第
0542デフォルトの名無しさん
NGNGそんなのどっちでもいいよ。
強いて言うなら無駄の少ないC。
0543デフォルトの名無しさん
NGNGどーせアセンブラみながらデバッグするんだから
0544デフォルトの名無しさん
NGNG有難うございました。
0545デフォルトの名無しさん
NGNG長期的に保守したり、おおざっぱでいいならC++にしとけ
0546デフォルトの名無しさん
NGNGscanfの%[^A]てするとAに出会うとそこで引数への入力が終ってしまいます。
123A456 だと 123しか入力されません。
123456よなるのが正しい動作ですよね?
0547デフォルトの名無しさん
NGNG0548デフォルトの名無しさん
NGNGscanf()の文字セット指定は、その文字セットが終了した時点で変換を終了します。
したがって、123456よなりません。
0549デフォルトの名無しさん
NGNGども、一致する文字がなくなったら次に移るんですね。
0550デフォルトの名無しさん
NGNG0551デフォルトの名無しさん
NGNG何気なく546に合わせているところにワラタ
0552デフォルトの名無しさん
NGNG0553デフォルトの名無しさん
NGNG0554デフォルトの名無しさん
NGNG0555デフォルトの名無しさん
NGNG0556デフォルトの名無しさん
NGNG0557デフォルトの名無しさん
NGNGない。
0558デフォルトの名無しさん
NGNG0559デフォルトの名無しさん
NGNG具体的に何がしたいんだ?
0560デフォルトの名無しさん
NGNG文書ファイルに文字を上書きをする場合は,単にwrite()で書き込みをすればそれで十分と思ったのですが,
文書ファイルに文字を挿入する場合っていったいどういう処理が行われているんでしょうか?
そのまんま考えてみると,挿入された文字以降のデータを全て移動させないといけないはずなんで,それってものすごい効率悪い処理だな〜って思い,気になってしまいました.
0561デフォルトの名無しさん
NGNG0562デフォルトの名無しさん
NGNGグラフィックスを表示する→GTK+
画像処理する→C
0563デフォルトの名無しさん
NGNG0564デフォルトの名無しさん
NGNGそれ生で使っている人っているの?
0565デフォルトの名無しさん
NGNG0566デフォルトの名無しさん
NGNGいます
0567デフォルトの名無しさん
NGNG私は画像処理とかが専門ではないのでGUI関連のライブラリとかについてもよく
知らないけれど、簡単に書ければ別になんでも良いと思っているんだ。
そんなことよりも勉強しないといけないことがたくさんある。
0568デフォルトの名無しさん
NGNG0569デフォルトの名無しさん
NGNG新しいクラスのために延々定型コード書くのがめんどかった記憶があるがアレは改善されたのだろうか。
0570デフォルトの名無しさん
NGNGグラフィックスを作りたいのか、解析したいのか
単なるGUIでいいのかで変わるだろ。
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNG70年代ならUNIXのfile systemは特殊だったから、
その質問もこのスレでやる意味があるけど、
今や全てのシステムでfile systemがUNIX流になったから、
その質問は他の板でやった方がいいよ。
効率が悪いのが気になるような場合は、
それなりの構造を持たせるってだけですが。
0573デフォルトの名無しさん
NGNG0574デフォルトの名無しさん
NGNGまさか今時ひとつのファイルで切った貼ったしない。死ね。
0577デフォルトの名無しさん
NGNG0578デフォルトの名無しさん
NGNGテキストエディタでも作るのかい?
0579デフォルトの名無しさん
NGNG0580デフォルトの名無しさん
NGNG0581デフォルトの名無しさん
NGNGデフォールトはSIGTERMです。
>>579
man signal(3)
0582デフォルトの名無しさん
NGNGSIGKILL受信時にsyslogに出力するようにkernelをhack
0583デフォルトの名無しさん
NGNGつーか、SIGKILLトラップできたっけ?
>>579
そのプロセスを監視するプロセスを作るのも一つの手。
0584デフォルトの名無しさん
NGNG0585560
NGNG貴重なご意見ありがとうございました.
他のスレで改めて質問してみます.
>>578
いえいえ,ファイルの入出力について勉強をしているところで,ふと湧いて出た
疑問点なだけなんで,まだまだ作るとかそういう意図は特にないです.
0586デフォルトの名無しさん
NGNGa) 1ファイルで読み書きするよ
1. 挿入ポイントからバッファ1に読み込み
2. 挿入する内容を書き込み
3. 1. で読み込んだ後ろをバッファ2に読み込み
4. バッファ1を 2. の後ろに書き込み
5. 3〜4 繰り返し
b) 2ファイルで安全に読み書きするよ
1. 挿入ポイントまで新しいファイルにコピー
2. 挿入する内容を新しいファイルに追加
3. 挿入ポイント以降を新しいファイルに追加
4. ファイル名変更
c) OSに任せちゃうよ
1. ファイルをメモリにマップ
2. メモリ上で移動
3. クローズ
0587デフォルトの名無しさん
NGNG0588デフォルトの名無しさん
NGNGgdb の使い方をマスターしましたか?
少しずつ使い方を覚えていくものでしょうか?
0589デフォルトの名無しさん
NGNG大抵は「バックトレース出せ」と言われて起動の仕方とbtコマンドを
最初に覚えると思うが。
0590デフォルトの名無しさん
NGNG0591デフォルトの名無しさん
NGNGGUI版でかつ、CUIでも利用可能なフロントエンドから始めたら?
ddd, insight, xxgdbなど
0592デフォルトの名無しさん
NGNG0593デフォルトの名無しさん
NGNG他の、GUIでとっつきやすいデバッガから練習しとけ。
デバッガとはどんなものかがわかったら、あとはgdbの使い方を学習するだけだ。
0594デフォルトの名無しさん
NGNGGUIで全部網羅してたらごちゃごちゃして逆に使いにくいので
GUIはよく使う機能に限定してすっきりさせて、あまり使わない機能をCUIでさくっと指定ってのがいいのでは
と適当なことを言ってみるテスト
0595デフォルトの名無しさん
NGNGGUIだとそういう機能を用意しない限りできないからね
だからGUI機能が充実していればCUIがいらないと言う意味では同意
0596デフォルトの名無しさん
NGNG0597デフォルトの名無しさん
NGNGご苦労さん
0598デフォルトの名無しさん
NGNGおっしゃる意味がわかりかねます
0599デフォルトの名無しさん
NGNGuser define command
command BNUM ... end
0600デフォルトの名無しさん
NGNGSIGCHLDを捕捉して、waitpid()を実行するように実装しました。
void signlahandler(int signum)
{
signal(signum, signlahandler); //☆
if(signum == SIGCHLD)
waitpid(0, NULL, WNOHANG);
//★
}
しかし、☆でシグナルハンドラの再設定すると、その時点でさらにSIGCHLDを
受信してしまい、延々とsignalhandler関数が呼び出されて
スタックオーバーフローとなりCoreを吐いてプロセスが異常終了してしまいます。
HPUXとAIXでこの現象が発生し、HPUXのmanのwaitpid()にはこの事が
書かれていました。正常に動作させるためには★の位置でシグナルハンドラの再設定を
しなければならないのですが、なぜこのような仕様なのでしょうか?
ちなみにAIXでは、waitpid()を実行せずに、★か☆の位置で再設定すると
同様にCoreを吐いて終わります。
説明が下手で意味がわからないかもしれませんが…知っている方がいましたら教えて下さい。
0601デフォルトの名無しさん
NGNG0602デフォルトの名無しさん
NGNGsigaction
0603デフォルトの名無しさん
NGNGsys/shm.hを使って
if((shmid = shmget(key,100, IPC_CREAT | 0666)) < 0) {
perror("shmget");
exit(1);
}
といった事をしたいのですが、引数の100の所を200とか
大きな数字にすると実行時Invalid argumentといったエラーが出ます。
/proc/sys/kernel/shmmaxのファイルには33554432と書かれていたので、
33Mまで共有メモリを使えるということなのかな?と考えているのですが、
なにがまずいのでしょうか。
環境はRedHat Advanced Server Version1.2です。
0604デフォルトの名無しさん
NGNG0605デフォルトの名無しさん
NGNGgoogleの検索結果って、
PERLで動いているの?JSP?PHP?
0606デフォルトの名無しさん
NGNG0607デフォルトの名無しさん
NGNGDelphiの挙動によく似てるんだよな。だからたぶんDelphiに間違いないよ。
0608デフォルトの名無しさん
NGNGGNU Emacs の挙動によく似てるんだよな。だからたぶん GNU Emacs に間違いないよ。
0609デフォルトの名無しさん
NGNG田中の挙動によく似てるんだよな。だからたぶん田中に間違いないよ。
0610デフォルトの名無しさん
NGNG検索結果は HTML です。間違いない。
0611デフォルトの名無しさん
NGNGどれもCへのトランスレータばっかり。
0612デフォルトの名無しさん
NGNG何か不満でも?
0613デフォルトの名無しさん
NGNGというのも
http://www.google.co.jp/search?&num=ie=UTF-8&oe=UTF-8&hl=ja&lr=lang_ja&q=UNIX
searchと?の間って、よくsearch.cgiとか見られるから、
格張子はあるはずだよね・・・わかんないけど。
ちなみにphpもjspもcgiもplもだめですた。_| ̄|○
0614デフォルトの名無しさん
NGNGくそしてねなさい
0615デフォルトの名無しさん
NGNG0616デフォルトの名無しさん
NGNG*command line*: 指定されたライブラリlibmath.aがありません。
このようにでるのですが、いろいろ検索してみましたがよくわかりませんでした。
libmath.aがUNIX標準の数学ライブラリ?ということはわかりましたが
結局何をすればよいのでしょうか??
0617デフォルトの名無しさん
NGNG0618デフォルトの名無しさん
NGNGとか
0619デフォルトの名無しさん
NGNG黙れボケ。
>>618
フザケンナ。
0620デフォルトの名無しさん
NGNG0621デフォルトの名無しさん
NGNG*command line*: 指定されたライブラリlibmath.aがありません。
このようにでるのですが、いろいろ検索してみましたがよくわかりませんでした。
libmath.aがUNIX標準の数学ライブラリ?ということはわかりましたが
結局何をすればよいのでしょうか??
0622デフォルトの名無しさん
NGNG人間のクズだな。お前。
0623616
NGNG>>618
すいません、具体的にはどうすればよいのでしょうか
>>620
調べていたらそんな文字列は出てきましたがよくわからないのです・・・・。
0624デフォルトの名無しさん
NGNG0628デフォルトの名無しさん
NGNG0629デフォルトの名無しさん
NGNG>結局何をすればよいのでしょうか??
コンパイラにlibmath.aのありかを教える
0631デフォルトの名無しさん
NGNGだからlibm.aだってば
0632デフォルトの名無しさん
NGNG何をコンパイルしているのか、コマンドラインを晒してみ。
0633デフォルトの名無しさん
NGNGおいらもそうは思うんだけど
libmath.aってのもぐぐると引っかってくるんだよね
0634616
NGNGあの・・荒らしとかでなくて本当に言っている意味がわかりません
>>632
flood > make
f90 -o dmomout main.o aci.o acj.o afi.o afj.o cfp.o nn.o nc.o zz.o -lma
th
ld *command line*: 指定されたライブラリlibmath.aがありません。
f90 fatal : ld command error : 1
*** Error code 1 (bu21)
make: fatal error
これのことですか?
0635デフォルトの名無しさん
NGNG0636デフォルトの名無しさん
NGNGまず、ifconfig っていうコマンドうって、IPアドレス調べて、それを教えてください。
0638デフォルトの名無しさん
NGNG0639デフォルトの名無しさん
NGNG0640デフォルトの名無しさん
NGNGルータで設定してくれればOKです。
0641デフォルトの名無しさん
NGNGほんとこのスレみてるともどかしくてそう思うことはよくある
悪いことしないからさw
0642616
NGNG荒らしのつもりではなかったのですが失礼しました。
もっと自分で調べて出直してきます。
お騒がせしました。
0643デフォルトの名無しさん
NGNG教授にはきけないよな?じゃあ、友達に聞くとか...(プログラム詳しい友達がいれば)
0644デフォルトの名無しさん
NGNGf90ってフォートランか。which f90して表示されたディレクトリ近傍にあるんじゃない?
0646デフォルトの名無しさん
NGNG0648デフォルトの名無しさん
NGNG0649デフォルトの名無しさん
NGNG日数を取得する方法を教えてちょんまげ
0651デフォルトの名無しさん
NGNG0652デフォルトの名無しさん
NGNG人差指と中指の間に強く挟んで、最後に抜くようにリリースする。
0653デフォルトの名無しさん
NGNG0654デフォルトの名無しさん
NGNGfork();をコールする
戻り値で親の動作をするか子の動作をするかを決める
それだけ
0655デフォルトの名無しさん
NGNG手首を動かさないようにするのも重要だぞ
0656デフォルトの名無しさん
NGNG/usr/include をgrepしても見つけられませんでした。
一応↓これみつけたんですけど違うだろうし。
#ifdef __USE_BSD
/* This is the 4.3 BSD `struct sockaddr' format, which is used as wire
format in the grotty old 4.3 `talk' protocol. */
struct osockaddr
{
unsigned short int sa_family;
unsigned char sa_data[14];
};
#endif
0657デフォルトの名無しさん
NGNGそういうときは、/usr/include/*をgrepしてみるべし
0658デフォルトの名無しさん
NGNGマジレスすると sa_family の値によって中身が変わる( sockaddr_in とか )から、
sockaddr そのものの sa_family 以外のメンバにはあまり意味は無い。
単に場所確保してるだけ (placeholder と言ふ)。
0659デフォルトの名無しさん
NGNG見つかりました。
grep -rw 'struct sockaddr' /usr/include/*
で探してたんですけど見落としてただけでした。
sys/以下もviで開いて検索してたのになんで気付かなかったのか、
これだけに2時間ぐらい掛かってしまった。
2時間の成果↓
struct sockaddr {
sa_family_t sa_family;
char sa_date[14];
}
0660デフォルトの名無しさん
NGNGども。
getaddrinfoしてinet_ntopしたかったんですけどAF_INETを指定すると
struct in_addrへのポインタとみなされるって
とりあえずそのままai_addrを引数にしてみたけどやっぱりダメで、
どうすれば良いのか分からなかったのでとりあえずメンバを見てみようと思いました。
getaddrinfoってgethostbynameと違ってWEB上に手取り足取りの情報がまったくないんですね。
0661デフォルトの名無しさん
NGNG0662デフォルトの名無しさん
NGNGやっぱり田中さんは四六時中webサーフィンしてるんですか?
0663デフォルトの名無しさん
NGNGこんな感じじゃないの?
char buf[1024];
struct addrinfo *res = NULL;
if (getaddrinfo("localhost", "ftp", NULL, &res) == 0)
{
while (res)
{
char* p = inet_ntop(res->ai_addr->af_family, res->ai_addr, buf, sizeof(buf));
printf("%s\n", buf);
res = res->ai_next;
}
freeaddrinfo(res);
}
0664デフォルトの名無しさん
NGNG定型句だからスクリプトを作っておいてもいいね。
0665デフォルトの名無しさん
NGNG0666デフォルトの名無しさん
NGNGトータルの所要時間は短くなるだろうな。
0667デフォルトの名無しさん
NGNG0668デフォルトの名無しさん
NGNG0669656
NGNG第2引数がres->ai_addrだとバッファには入りますがちんぷんかんぷんなものになります。
>>664
find /usr -type f -name '*.h'|xargs grep "$1" /dev/null
ですよね。作っときます。
>>665
とりあえずこれ買ってみます。
http://www.amazon.co.jp/exec/obidos/ASIN/4274065197/250-2073039-8082631
>>667
アルファベットと数字、enter、shift、capsLock、esc、コロンの縦列以外の正打率が
60%ぐらいなのでemacsは敬遠していましたが使ってみます。
0670デフォルトの名無しさん
NGNG0671デフォルトの名無しさん
NGNG0672デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?num=20&hl=ja&c2coff=1&q=gerp&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0673デフォルトの名無しさん
NGNG> res = res->ai_next;
> }
> freeaddrinfo(res);
freeaddrinfo() に渡すのは getaddrinfo() で返されたポインタそのものじゃないとダメよ。
>>660
あえて inet_ntop() を使うんなら、こんな感じかな。
---
if(res->ai_family == AF_INET6){
inet_ntop(AF_INET6,
&(((struct sockaddr_in6 *)res->ai_addr)->sin6_addr),
buf, sizeof(buf));
printf("%s\n", buf);
} else if(res->ai_family == AF_INET){
inet_ntop(AF_INET,
&(((struct sockaddr_in *)res->ai_addr)->sin_addr),
buf, sizeof(buf));
printf("%s\n", buf);
}
---
けど、こういう場合は getnameinfo() を使うのが常套手段。
0674673
NGNG---
struct addrinfo hints, *res, *res0;
char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
memset(&hints, 0, sizeof(hints));
hints.ai_family = AF_UNSPEC;
hints.ai_socktype = SOCK_STREAM;
if (getaddrinfo("www.kame.net", "http", &hints, &res0) == 0) {
for (res = res0; res; res = res->ai_next) {
if (getnameinfo(res->ai_addr, res->ai_addrlen,
hbuf, sizeof(hbuf), sbuf, sizeof(sbuf),
NI_NUMERICHOST | NI_NUMERICSERV) == 0) {
printf("host=%s, serv=%s\n", hbuf, sbuf);
}
}
freeaddrinfo(res0);
}
---
マニュアルページを読めばわかるが、getnameinfo() は非常に強力なんで
大抵の場面で使える。
とりあえず、↓これは必携。
http://www.ascii.co.jp/books/detail/4-7561/4-7561-4236-2.html
0675デフォルトの名無しさん
NGNG> getaddrinfoってgethostbynameと違ってWEB上に手取り足取りの情報がまったくないんですね。
http://www.soi.wide.ad.jp/class/20030030/materials_for_student/11/osamuNP11ver1.0.ppt
サンプルプログラム(URL)あり。
0676デフォルトの名無しさん
NGNG見つかっても教えないくらいの余裕を持て
0677デフォルトの名無しさん
NGNG…(堪えてる)…
0678デフォルトの名無しさん
NGNG0679デフォルトの名無しさん
NGNG0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNG0682デフォルトの名無しさん
NGNG8番目クリックしたらここだった(笑)
0683デフォルトの名無しさん
NGNG0684デフォルトの名無しさん
NGNG中身をゼロバイトにする方法ってあるんでしょうか?
やはり、クローズしてからwモードでオープンしないと駄目なんでしょうか?
rewindしてから上書きしても前の内容が残っていて不都合がでるんです。
オープン直後にファイルをロックしているので、
クローズせずにオープンしたままの状態でファイルサイズをゼロにしたいのです。
つまりこのようにしたいのです。
log = fopen(LOG,"r+")
flock( fileno(log), LOCK_EX );
fgets(buf, MAXLEN, log)
//ここでファイル(logの)サイズをゼロにしたい
fprintf(log, " //
fclose(log);
flock( fileno(log), LOCK_UN );
0685デフォルトの名無しさん
NGNG0686デフォルトの名無しさん
NGNGftruncate(2)
0687デフォルトの名無しさん
NGNG0688デフォルトの名無しさん
NGNGfreopen(3)は、fclose(3)しちゃうので、その時にlockが外れます。
0689デフォルトの名無しさん
NGNG0690デフォルトの名無しさん
NGNGアンロックはクローズと一緒にやりな。
0691デフォルトの名無しさん
NGNG解決しました。どうもありがとうございました。
ftruncateは現在プログラム内でオープンしているファイルに対しての
操作は出来ないのかなと思っていたのでftruncateのことは無視してました(藁
ていうか>>684は別スレに書き込んだ質問なのに
勝手にこっちにコピペされてた(藁
0692デフォルトの名無しさん
NGNG逆だよ。オープンしていなければ使えないんだよ。
0693デフォルトの名無しさん
NGNGopen→fopenって類推しちゃったのかも知れないけど、
stat→fstatと同じ関係ね。
しかしこれ名前をfdtruccate, fdstatにするべきだったな。
0694691
NGNGで、ソースはこうなったので問題は解決です。
fclose(log);
if((log = fopen(LOG,"w")) == NULL){
printf("ダメぽ");
return FALSE;
}
↓
ftruncate(fileno(log), 0);
rewind(log);
0695誰か教えてください!2
NGNG#!/bin/sh
echo $#
echo $1 $2 $3 $11 $12
shift 2
echo $1 $2 $3 $11 $12
のとき,
./arg-test1 1 2 3 4 5 6 7 8 9 10 11 12
を実行して,$#, $1 $2 ...,shiftの意味を確認 せよ.
(ヒント: script 中の 11, 12 を 21,22 に変更してみ よ.)
0696誰か教えてください!2
NGNG#!/bin/sh
for i
do
echo $i
done
echo '$*'
for i in $*; do
echo $i
done
echo '"$*"'
for i in "$*"; do
echo $i
done
echo '$@'
for i in $@; do
echo $i
done
echo '"$@"'
for i in "$@"; do
echo $i
done
のとき,
./arg-test abc def "abc def"
と入力した結果を参考にし,$@ と $* の差を説明しろ.
2)上記問題で,./arg-testと,./ を指定している理由を考えろ.
695です。すみませんがよろしくお願いします!!!
0697デフォルトの名無しさん
NGNG0698誰か教えてください!2
NGNG今日までのレポなんです‥
0699デフォルトの名無しさん
NGNGそんな奴は落第してしまえ。
こんなの通しても世のためにならじ。
考えろって書いてあるのに自分で考える気ゼロじゃねーか。
0700デフォルトの名無しさん
NGNG0701デフォルトの名無しさん
NGNG0702デフォルトの名無しさん
NGNG0703デフォルトの名無しさん
NGNG0704デフォルトの名無しさん
NGNG${@+"$@"}がないのは納得がいかねえ。
0705デフォルトの名無しさん
NGNGdup2(fd, STDOUT_FILENO);
close(fd);
execlp("cat", "cat", NULL);
としたのですが、
fdに何か書き込んでも、
fdから何も出てきません。
何がいけないんでしょうか。
0706デフォルトの名無しさん
NGNG0707デフォルトの名無しさん
NGNGすいません。
TCP/IPサーバを作ってみようと思いまして、
それでまず、echoサーバを書いてみようと思ったんです。
将来的な事を考えると、
execで外部のプログラムを呼び出すかたちで、
これを実現したいのですが。
どうでしょうか。
0708デフォルトの名無しさん
NGNG0709デフォルトの名無しさん
NGNGこの動作をするまえにforkしています。
echoするのをcatにやらせたいということです。
0710デフォルトの名無しさん
NGNGその前のテストプログラムを書いているんだろ?
それはどういうものを意図しているわけ?
0711デフォルトの名無しさん
NGNGすいません。
質問の意図が良く分からないです。
最終的な目的は、netcatみたいなものを
自分で作れないかということです。
0712710
NGNGcat(1)でstdinとstdoutが同じなのはまずいよ。
0713デフォルトの名無しさん
NGNG>cat(1)でstdinとstdoutが同じなのはまずいよ。
コマンドラインからもやってみましたけど、
うまくいきませんね。
なぜなんでしょう。
0714デフォルトの名無しさん
NGNG0715デフォルトの名無しさん
NGNGcat <hoge >hoge
としたところ。
ファイルhogeの中身が消えてしまいました。
0716デフォルトの名無しさん
NGNGFILE *f = fdopen(fd);
while(1) {
int ch = fgetc(f);
if (ch == EOF) break;
fputc(ch, f);
}
じゃまずいのか?
0717デフォルトの名無しさん
NGNGえと、外のプログラムを呼び出して、
処理するようにしたいので、
中で自分でやってしまうのでは駄目なんです。
0718デフォルトの名無しさん
NGNG0719デフォルトの名無しさん
NGNGありがとうございます。
0720デフォルトの名無しさん
NGNG今書き直したところ、
>705のやりかたでうまくいきました。
しかし、引数を付けたりするとうまくいかないみたいです。
たとえば、
execlp("cat", "cat", "-s", NULL);
などとすると駄目です。
どうしたら良いでしょうか。
0721デフォルトの名無しさん
NGNGforkしてれば中で自分でやってしまうことにはならないんだが
0722デフォルトの名無しさん
NGNGそう言うことではなくて、
外のプログラムを呼んで、
それに仕事をさせたいということです。
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNG入力と出力を別にしろよ。パイプ使ったり。
0725デフォルトの名無しさん
NGNG#include <unistd.h>
#include <signal.h>
#include <sys/wait.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
enum{
MAX_CLIENT = 3,
PORT = 10000,
};
unsigned int NUM_C = 0;
void sigchld_handler(sig_t sig)
{
int stat;
extern unsigned int NUM_C;
signal(SIGCHLD, sigchld_handler);
wait(&stat);
NUM_C--;
printf("SIGCHLD %d\n", stat);
}
0726デフォルトの名無しさん
NGNG{
int listenfd, connfd, nbytes;
char buf[BUFSIZ];
struct sockaddr_in servaddr;
extern unsigned int NUM_C;
pid_t pid;
signal(SIGCHLD, sigchld_handler);
if((listenfd = socket(AF_INET, SOCK_STREAM, 0)) < 0){
perror("socket"); exit(1);
}
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(PORT);
servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(listenfd, (struct sockaddr*)&servaddr, sizeof(servaddr))
< 0){
perror("bind"); exit(1);
}
if(listen(listenfd, 5) < 0){
perror("listen"); exit(1);
}
0727デフォルトの名無しさん
NGNG0728デフォルトの名無しさん
NGNGif((connfd = accept(listenfd, (struct sockaddr*)NULL, NULL)) < 0){
perror("accept"); exit(1);
}
if(NUM_C++ < MAX_CLIENT){
pid = fork();
if(pid == 0){ /* child */
close(listenfd);
dup2(connfd, STDIN_FILENO);
dup2(connfd, STDOUT_FILENO);
dup2(connfd, STDERR_FILENO);
close(connfd);
if(execlp("cat", "cat", NULL) < 0){
perror("execl"); exit(1);
}
exit(0);
}else{/* parent */
close(connfd);
}
}else{
close(connfd);
}
}
return 0;
}
0729デフォルトの名無しさん
NGNGこのプログラムはちゃんと動きます。
その上で、catに引数を渡して動くようにしたいのです。
0730デフォルトの名無しさん
NGNG0731デフォルトの名無しさん
NGNG親子の間はpipeでいいんじゃない?
0732デフォルトの名無しさん
NGNGえーと、どういうことでしょうか。
親子間では通信する必要がないように思うんですが。
0733実験
NGNGI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8dW5pc3RkLmg+DQojaW5jbHVkZSA8c2lnbmFs
Lmg+DQojaW5jbHVkZSA8c3lzL3dhaXQuaD4NCiNpbmNsdWRlIDxzeXMvdHlwZXMuaD4NCiNpbmNs
dWRlIDxzeXMvc29ja2V0Lmg+DQojaW5jbHVkZSA8bmV0aW5ldC9pbi5oPg0KDQplbnVtew0KCU1B
WF9DTElFTlQgPSAzLA0KCVBPUlQgPSAxMDAwMCwNCn07DQp1bnNpZ25lZCBpbnQgTlVNX0MgPSAw
Ow0KDQp2b2lkIHNpZ2NobGRfaGFuZGxlcihzaWdfdCBzaWcpDQp7DQoJaW50IHN0YXQ7DQoJZXh0
ZXJuIHVuc2lnbmVkIGludCBOVU1fQzsNCg0KCXNpZ25hbChTSUdDSExELCBzaWdjaGxkX2hhbmRs
ZXIpOw0KCXdhaXQoJnN0YXQpOw0KCU5VTV9DLS07DQoNCglwcmludGYoIlNJR0NITEQgJWRcbiIs
IHN0YXQpOw0KfQ0KDQppbnQgbWFpbigpDQp7DQoJaW50IGxpc3RlbmZkLCBjb25uZmQsIG5ieXRl
czsNCgljaGFyIGJ1ZltCVUZTSVpdOw0KCXN0cnVjdCBzb2NrYWRkcl9pbiBzZXJ2YWRkcjsNCgll
eHRlcm4gdW5zaWduZWQgaW50IE5VTV9DOw0KCXBpZF90IHBpZDsNCg0KCXNpZ25hbChTSUdDSExE
LCBzaWdjaGxkX2hhbmRsZXIpOw0KDQoJaWYoKGxpc3RlbmZkID0gc29ja2V0KEFGX0lORVQsIFNP
Q0tfU1RSRUFNLCAwKSkgPCAwKXsNCgkJcGVycm9yKCJzb2NrZXQiKTsgZXhpdCgxKTsNCgl9DQoJ
Ynplcm8oJnNlcnZhZGRyLCBzaXplb2Yoc2VydmFkZHIpKTsNCglzZXJ2YWRkci5zaW5fZmFtaWx5
ID0gQUZfSU5FVDsNCglzZXJ2YWRkci5zaW5fcG9ydCA9IGh0b25zKFBPUlQpOw0KCXNlcnZhZGRy
LnNpbl9hZGRyLnNfYWRkciA9IGh0b25sKElOQUREUl9BTlkpOw0KDQoJaWYoYmluZChsaXN0ZW5m
ZCwgKHN0cnVjdCBzb2NrYWRkciopJnNlcnZhZGRyLCBzaXplb2Yoc2VydmFkZHIpKSA8IDApew0K
CQlwZXJyb3IoImJpbmQiKTsgZXhpdCgxKTsNCgl9DQoJaWYobGlzdGVuKGxpc3RlbmZkLCA1KSA8
IDApew0KCQlwZXJyb3IoImxpc3RlbiIpOyBleGl0KDEpOw0KCX0NCg0KCXdoaWxlKDEpew0KCQlp
ZigoY29ubmZkID0gYWNjZXB0KGxpc3RlbmZkLCAoc3RydWN0IHNvY2thZGRyKilOVUxMLCBOVUxM
KSkgPCAwKXsNCgkJCXBlcnJvcigiYWNjZXB0Iik7IGV4aXQoMSk7DQoJCX0NCg0KCQlpZihOVU1f
QysrIDwgTUFYX0NMSUVOVCl7DQoJCQlwaWQgPSBmb3JrKCk7DQoJCQlpZihwaWQgPT0gMCl7IC8q
IGNoaWxkICovDQoJCQkJY2xvc2UobGlzdGVuZmQpOw0KDQoJCQkJZHVwMihjb25uZmQsIFNURElO
X0ZJTEVOTyk7DQoJCQkJZHVwMihjb25uZmQsIFNURE9VVF9GSUxFTk8pOw0KCQkJCWR1cDIoY29u
bmZkLCBTVERFUlJfRklMRU5PKTsNCgkJCQljbG9zZShjb25uZmQpOw0KDQoJCQkJLyoNCgkJCQkJ
0734実験
NGNGdCIsICItcyIsIE5VTEwpDQoJCQkJKi8NCgkJCQlpZihleGVjbHAoImNhdCIsICJjYXQiLCBOVUxM
KSA8IDApew0KCQkJCQlwZXJyb3IoImV4ZWNsIik7IGV4aXQoMSk7DQoJCQkJfQ0KDQoJCQkJZXhp
dCgwKTsNCgkJCX1lbHNleyAvKiBwYXJlbnQgKi8NCgkJCQljbG9zZShjb25uZmQpOw0KCQkJfQ0K
CQl9ZWxzZXsNCgkJCWNsb3NlKGNvbm5mZCk7DQoJCX0NCgl9DQoNCglyZXR1cm4gMDsNCn0NCg==
====
0735デフォルトの名無しさん
NGNGmimeエンコーディングですか?
使ったことないんでデコードの仕方が分からないんですが...
0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG0738デフォルトの名無しさん
NGNGの次の行から734最後の====までをhoge.c.base64として保存
$ base64-decode < hoge.c.base64 > hoge.c
base64-decodeは無ければ探せばある
0739デフォルトの名無しさん
NGNG今インストールしています。
0740デフォルトの名無しさん
NGNG0741デフォルトの名無しさん
NGNG0742デフォルトの名無しさん
NGNGでした…
0743デフォルトの名無しさん
NGNGif(execlp("cat", "cat", "-n", "-u", NULL) < 0){
perror("execl"); exit(1);
}
で動いた。バッファリングとかそのへんですか?
0744デフォルトの名無しさん
NGNG0745デフォルトの名無しさん
NGNGtest コマンド(組み込み,独立どちらでも構わない)
を利用する script の例を作成せよ.
0746デフォルトの名無しさん
NGNGい・や・♪
0747デフォルトの名無しさん
NGNG0748デフォルトの名無しさん
NGNGを利用する script の例を作成せよ.
0749デフォルトの名無しさん
NGNG0750デフォルトの名無しさん
NGNG#!/bin/sh
/bin/test
0751デフォルトの名無しさん
NGNG#!/bin/sh
set -x
LC_ALL=C LANG=C; export LC_ALL LANG
script -t -c "traceroute -v -t 16 -m 64 www.funet.fi 2>&1" 2> timingfile
for I in 1 2; do
sleep 2;
clear;
scriptreplay timingfile;
done
if test -e timingfile; then rm -f timingfile; fi
if test -e typescript; then rm -f typescript; fi
0752デフォルトの名無しさん
NGNG機能として、1.これからデータを送るということを他方のプログラムに知らせ、
2.そしてデータを送信するという2つの処理が必要です。
signalとshmで実現しようかと思っているのですが、もっとスマートな方法はないでしょうか。
たとえばWindowsのWM_COPYDATAのように、この2つの処理を同時に行えるような機能はないでしょうか。
0753デフォルトの名無しさん
NGNGipc使うならshmじゃなくてmsgとか。
0754752
NGNGもう一つ質問なんですが、あるプログラムから外部のプログラムを実行するとき、
終了を待たずに実行してすぐ返ってくるには、
execかsystemでコマンドラインに&をつければよいのでしょうか。
0755デフォルトの名無しさん
NGNG細かく制御したいならforkしてexecする。
0756デフォルトの名無しさん
NGNGfork&execでは、自分のプロセスでfork()して起動した側は即復帰、起動された側はexec()で別プログラムに制御が移る。
だから終了も待たないしプロセスIDを得られる。
systemでは、自分のプロセスからシェルを経由して別プログラムを起動するからシェル次第。
systemで&をつければバックグランドで起動してシェルから復帰してくるからお手軽だが、
別プログラムのプロセスIDを必要とするならpopen()を使ってシェルからプロセスIDを通知してもらうとか。
まぁ、そこまでするなら>755。
#なんか、話の流れからするとpopen()でことが足りてしまうような気がするんだがw
0757デフォルトの名無しさん
NGNG0758デフォルトの名無しさん
NGNGソケット以外でって話だけど、PF_LOCAL(PF_UNIX)は調査済み?
他にもFIFOファイルってのもあるよ。
0759デフォルトの名無しさん
NGNG> PF_LOCAL(PF_UNIX)は調査済み?
それってソケットじゃないの?
0760デフォルトの名無しさん
NGNGそうだよ。だから「ソケット以外でって話だけど」って書いてるじゃん。
単にTCP/IP以外のプロセス間通信の方法かなって思ったんで。
0761デフォルトの名無しさん
NGNG0762デフォルトの名無しさん
NGNG0763デフォルトの名無しさん
NGNG英語版は買ったのですが、日本語訳がでたらそれも買いたいので...
0764デフォルトの名無しさん
NGNG0765デフォルトの名無しさん
NGNG0766デフォルトの名無しさん
NGNG0767デフォルトの名無しさん
NGNGセキュリティレベルの設定内容によっては±1秒以上の変更が禁止されている場合もある。
NTPを使ってる環境ならこっちの方が良い鴨。
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/adjtimex.2.html
0768デフォルトの名無しさん
NGNG0769デフォルトの名無しさん
NGNGセキュリティレベルの設定内容によっては±1秒以上の変更が禁止されている場合もある。
NTPを使ってる環境ならこっちの方が良い鴨。
http://www.linux.or.jp/JM/html/LDP_man-pages/man2/adjtimex.2.html
0770デフォルトの名無しさん
NGNGPATHの記述というか解釈方法について、BNF記法のように定義された
POSIXの規格はありますか?
目的はバギーなrealpath()の代替関数を書きたいのです。
0771デフォルトの名無しさん
NGNG0772デフォルトの名無しさん
NGNG0773デフォルトの名無しさん
NGNG0774デフォルトの名無しさん
NGNGこれで良いのか、他にもっと良い方法があるのか教えてください.
#define MAX_CMDARGC 10
char *ptr, *cmdargv[MAX_CMDARGC + 1], cmdline[] = "emacs -q --load hoge.el test.txt";
int i = 0;
for (ptr = strtok(cmdline, " "); i < MAX_CMDARGC && ptr != NULL; ptr = strtok(NULL, " ")) {
cmdargv[i++] = ptr;
}
cmdargv[i] = NULL;
0775デフォルトの名無しさん
NGNG0776デフォルトの名無しさん
NGNG0777デフォルトの名無しさん
NGNG0778デフォルトの名無しさん
NGNG思わない?
多分そんなに難しいことじゃないんだろうなぁということが
論理の破綻した説明に載せられるとわけがわからん
WEBで調べたら一発だったよ
くそ高い本買うんじゃなかった
0779デフォルトの名無しさん
NGNG論理の破綻した説明がどこかを言ってくれるとすごくありがたい.
0780デフォルトの名無しさん
NGNG変えたら意味が通るんだけどね
「標準入力、標準出力、標準エラー出力を、端末装置あるいは擬似
端末装置のどちらかに結びついたログインシェルを使っているので
ある」
日本語にしてみてみて読み返した時に
あれ何か変だなって気が付くだろ
普通に日本語が読み書きできる人だったらさ
こんなことの連続で日本語を日本語に訳す作業に疲れてしまって
とてもじゃないけど安心して読めない
0781デフォルトの名無しさん
NGNG0782デフォルトの名無しさん
NGNG原書買った方が得な本のうちの一つだな、APUEは。
0783デフォルトの名無しさん
NGNG俺は一読しただけでは違和感がなかった…
たぶん知識の方で勝手に脳内修正してしまったのだろう。
「〜が、〜に結びついた〜」「〜を、〜に結びつけた〜」でしょうね。
0784デフォルトの名無しさん
NGNGいわゆる名著や信頼性のある情報を扱う出版社という
イメージがある
だがピアソンの日本語訳は一般的に酷いものが多いな
0785デフォルトの名無しさん
NGNG0786デフォルトの名無しさん
NGNGAPUE は図が良いよな
日本語版も図だけはStevensの能力を受け継いでいる
0787デフォルトの名無しさん
NGNG0788デフォルトの名無しさん
NGNG凄いなお前
なら具体的な話しをしてみ
0789デフォルトの名無しさん
NGNG?
0790デフォルトの名無しさん
NGNG人を試すな。
0791デフォルトの名無しさん
NGNGwarota
0792デフォルトの名無しさん
NGNG0793デフォルトの名無しさん
NGNGkill なのはどういう経緯なんですかね
0794デフォルトの名無しさん
NGNG0795デフォルトの名無しさん
NGNG0796デフォルトの名無しさん
NGNG0797770
NGNGセキュリティホール量産してろ。
ところで誰もpathの規格を知りませんか…。
0798デフォルトの名無しさん
NGNGUNIXは適当なのかもね
0799デフォルトの名無しさん
NGNG・「/」で始まるのは絶対パス
・それ以外はカレントディレクトリからの相対パス
・「.」は自分自身
・「..」 は親ディレクトリ
・ルートの親はルート自身
realpath() がどうバギーなのか教えて。
0800770ではないが
NGNG>バグ
>この関数は決して使わないこと。設計段階から問題がある。出力バッファの
>適切なサイズを決定することができないからである。 ・・・・
こういうことかな?
0801デフォルトの名無しさん
NGNG0802デフォルトの名無しさん
NGNGsprintfは長さが予測可能な場合が多いからこれとは事情が違う
0803デフォルトの名無しさん
NGNG0804デフォルトの名無しさん
NGNG0805770
NGNGありますが…。それはともかく、
~/は展開すべきか、エラーとすべきか
~hoge/は/home/hogeなどと展開すべきか、エラーとすべきか
//は/と同等と解釈すべきか、エラーとすべきか
.../は../と同じか、エラーとすべきか
etc...
これらにはOS依存とかシェルが介在しているための問題もあるかと
思われますが、BNFなどによる明確な定義があれば知りたいのです。
0806デフォルトの名無しさん
NGNGこの様にUNIXはいたるところバグだらけでとても使い物にはならない
また、もし使っているところがあればそのシステムも同様に信用ならない
けして業務で使ってはいけないOS
ということが良くわかりましたね
>UNIXは決して使わないこと。設計段階から問題がある。
0807デフォルトの名無しさん
NGNG0808デフォルトの名無しさん
NGNGネタで言っているとしか思えない
0809デフォルトの名無しさん
NGNG0810デフォルトの名無しさん
NGNGそれまでの旧システムのサポートを打ち切る暴挙を起こしたUNIX系の会社があったな
UNIX扱うとこがこんなこと言ってるようじゃこのUNIX界もおわりだなと思った。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG0813デフォルトの名無しさん
NGNGUNIXだとサポートがまず役に立たないとあかんしね・・・
0814デフォルトの名無しさん
NGNGまさに無能の集団だな
>>812
UNIX板で聞けば?
0815デフォルトの名無しさん
NGNG・「.」とか「..」はファイル名であって、特別なキーワードではない。
・なので「...」は、そういうファイルがなければエラーになる。
・「//」はリモートにアクセスする手段だから「/」と同じはちょっとアレ。
0816デフォルトの名無しさん
NGNGこの程度の質問で言い方が悪いとかでいちいち目くじら立てる
仕切り厨が沸いて出てくる始末だしな。
0817デフォルトの名無しさん
NGNG0818デフォルトの名無しさん
NGNGいや、799が答えているのに805はすっかり無視していると。
0819デフォルトの名無しさん
NGNGつーかrealpath使うなとか書いておいて、代わりを用意しないのな。
それがUNIX文化ってやつ?
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNG"//ホスト名/あっちのパス"って指定できる環境もあるよ。
Windowsでもそれのマネで"\\hoge\abc" とか書くよね。
0822デフォルトの名無しさん
NGNGURIのプロトコル://〜と勘違いしてるんじゃないの?
0823デフォルトの名無しさん
NGNGどうやらシェルでcd path; pwd打ったほうが早そうだぞ
0824799,815
NGNG全部ウソです。
0825デフォルトの名無しさん
NGNG俺はPOSIX軽視だからシラネ
0826デフォルトの名無しさん
NGNG> "//ホスト名/あっちのパス"って指定できる環境もあるよ。
こっちがWindowsのマネ。やるとしたらOSじゃなくてアプリレベルの対処。
realpath(3)についていえばresolve_pathが指すバッファはサイズPATH_MAXであること
というのもインタフェースの一部(単にC言語の都合上強制できないだけ)だから、
PATH_MAXが定数で定義されているシステム(出所の直系である*BSDとか)では問題ない。
Linuxのmanはパラノイアックというか、OSとの整合性をとって記述しろと思うのだが。
POSIXでもこの点に関して「将来resolve_pathにNULLを渡したら自前でバッファ
をアロケートするようになるかも」と書いてあり、あんなつまらんmanを書くくらいなら
代替関数を用意してSEE ALSOに書け、と思ってしまう。
0827デフォルトの名無しさん
NGNGもしrealpathがWindowsのAPIだったら〜Exとかいう妙な改版がされてたとこだな
0828デフォルトの名無しさん
NGNGそれに仕事ならソースがあったとしてもわざわざ読んでいる時間も惜しい。
Linuxの様に全てソースありに挿げ替えられたならともかく
特定環境のrealpathの代替なんていったいどう実装すりゃいいのやら、だな。
頼みのドキュメントも>>800の様なクソmanでは使い物にならない。
それもこれも全てGNUが悪いRMSが悪いオープンソースが悪い。
RMSにはUNIXが死滅する前にさっさと死んで欲しい。
0829デフォルトの名無しさん
NGNG何ならいいのだ?
0830デフォルトの名無しさん
NGNGプログラマを奴隷か何かだと思い込んでるとしか思えないよな。
よっぽど金の絡む仕事で嫌な事があったのかね。
あれのせいでソフトウェア=無料と世間に思わせてしまった罪は重いと思う。
スレ違いっぽいが。
0831デフォルトの名無しさん
NGNG年取るといいかげん疲れるぜ
0832770
NGNGまぁ、OS上とかHDD上のレベルに適用されるPATH解釈というのは勿論必要
なのですが、URIでは最大長は定義されていないので、こういうのも処理
したいわけです。(http://とかいうスキームの部分は不要つうかHTTPの
リクエストでは/以降しか遣さないので)
それにlinuxにおいてはPATH_MAXとかNAME_MAXはlimits.hのヘッダ次第で
どうとでも変わりますね。(ほかのOSは知らない)
POSIXにおけるPATH長の制限とかが定義されていたと仮定して、それが
OSのlimit.hで定義されている長さ以上はすべてエラーと看做してよいとか、
解析の結果PATH_MAX以下ならOKとか定義されていれば話は簡単なんですけど。
0833デフォルトの名無しさん
NGNGrealpathの代替だって*BSDからパクってきて、なんならバッファをmalloc/realloc
させるようにちょっと弄るくらいで簡単だろ。
別にSYSVとBSDでパスの形式が違うわけでなし。
0834デフォルトの名無しさん
NGNG0835デフォルトの名無しさん
NGNGこれ、BSDのソース読めってことだろ?
そういうのがいかんという話ではないのか?
0836772
NGNG> それにlinuxにおいてはPATH_MAXとかNAME_MAXはlimits.hのヘッダ次第で
> どうとでも変わりますね。(ほかのOSは知らない)
んな無茶な。"次第"って変らんよ。ツーか勝手に変えちゃ駄目。
> POSIXにおけるPATH長の制限とかが定義されていたと仮定して、それが
> OSのlimit.hで定義されている長さ以上はすべてエラーと看做してよいとか、
> 解析の結果PATH_MAX以下ならOKとか定義されていれば話は簡単なんですけど。
見做すというかマニュアル読めよ。
http://www.opengroup.org/onlinepubs/009695399/functions/realpath.html
[ENAMETOOLONG]
The length of the file_name argument exceeds {PATH_MAX} or a pathname
component is longer than {NAME_MAX}.
0837826
NGNGURIのpath部だけ対象にするならUNIXのパスなぞ関係ない。
URIの規定に従って文字列処理をする。
実際のOS上での場所が問題になるならディレクトリを辿っていく。
ごっちゃにして同じもので済まそうとする時点で間違い。
> それにlinuxにおいてはPATH_MAXとかNAME_MAXはlimits.hのヘッダ次第で
> どうとでも変わりますね。(ほかのOSは知らない)
おまいアホだろ。
その値でもってOSのカーネルとユーザランドがビルドされたという情報なんだから。
変えたいのなら、好きな定義をしたソースツリー上でカーネルもユーザランドも
全てビルドしてインストールすれ。他人のLinuxとは互換じゃなくなるけど。
0838デフォルトの名無しさん
NGNG> これ、BSDのソース読めってことだろ?
> そういうのがいかんという話ではないのか?
代替関数を実装するのにソースなしの方がいいのか?
この部分はソース嫁とは関係ない話だと思うんだが。
つーかぶっちゃけ828はろくに考えて書いてるようには見えん。
0839デフォルトの名無しさん
NGNG0840デフォルトの名無しさん
NGNG0841デフォルトの名無しさん
NGNGソース読めってのもどうかと思う。
仕様に合っているかどうかわからんからね。
POSIXやX/OpenやOpenGroupの仕様は、
たくさんの頭で考えたものだからソースよりずっと信頼できる。
Microsoft Windowsなら、実装→仕様って事が多いけども。
0842770
NGNGどうなってるのかと問うてるのよ。ごっちゃにするかしないか云々など興味
ないな。
>その値でもってOSのカーネルとユーザランドがビルドされたという情報なんだから。
その意味だけど何?
カーネル等の再構築で手を入れられて動作が変わるようでは困るけど何?
折角いいことを言ったと思ったのに、とたんにレベルが落ちたからがっかり
だな…。
0843デフォルトの名無しさん
NGNGといってももう見ていないだろうけど。
0844デフォルトの名無しさん
NGNG> HTTPとPOSIXの定義に差があると困るから、
それを言うならHTTPじゃなくてURIじゃないの?
まあURIとPATH_MAX/NAME_MAXは関係もないけど。
0845デフォルトの名無しさん
NGNGこれがUNIX文化ってやつ?
0846デフォルトの名無しさん
NGNG0847デフォルトの名無しさん
NGNG0848デフォルトの名無しさん
NGNG0849デフォルトの名無しさん
NGNG0850デフォルトの名無しさん
NGNG0851デフォルトの名無しさん
NGNGLinuxだけで育つと知識も性根もひねくれてしまうんかね。
0852770
NGNG0853デフォルトの名無しさん
NGNG0854デフォルトの名無しさん
NGNG0855デフォルトの名無しさん
NGNGこの件はこれまでだな。
0856デフォルトの名無しさん
NGNG0857デフォルトの名無しさん
NGNG//ホスト名 はApollo Domainでも使えた。
だからMS-Windowsの真似とは限らない。
0858デフォルトの名無しさん
NGNG/../ファイル名/usr/rms/.emacsだった。
0859デフォルトの名無しさん
NGNG0860デフォルトの名無しさん
NGNGなんでこのスレにいるの?
0861デフォルトの名無しさん
NGNG最近の"host:/abc/def" みたいな書き方のかわりに
昔は"//host/abc/def" みたいに書かれることが多かった。
Windowsの書き方もURIの"//host"もそれからの影響なんじゃないかな?
想像だけどね。
0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNG0864デフォルトの名無しさん
NGNG0865デフォルトの名無しさん
NGNGRFS のアクセス方法について詳しく知りたいんだけど、どこかに
資料ない?
> /../ファイル名/usr/rms/.emacs
ファイル名ってのがよくわかんない。
0866デフォルトの名無しさん
NGNGルートの1個上には、各ホストのルートにリンクされたファイルが
ずらずら並んでいるという仮想的な場所があるというイメージ。
0867デフォルトの名無しさん
NGNGBASIC の所為にした方が都合がいいですか?
0868デフォルトの名無しさん
NGNG0869デフォルトの名無しさん
NGNG0871デフォルトの名無しさん
NGNG0872デフォルトの名無しさん
NGNGhttp://redgenesis.hp.infoseek.co.jp/cgi/cgi-bin/wiki.cgi?FrontPage
0873858
NGNG実装と言うか仕様なんですが、
rootのparentはrootだってsmalltalkの頃から決まっているはずですが、
System VのRFSでは、/の..はsuper rootって/とは別なんです。
僕も実装はさわったことないんですが、Bach本で読みました。
0874デフォルトの名無しさん
NGNG0875デフォルトの名無しさん
NGNGめりーくりすます
0876デフォルトの名無しさん
NGNG0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG標準入力と標準出力のファイル番号は
どうやって調べたらよかとですか?
0879878
NGNGdup2(fd[1],1)
とかやっても標準入力は複製できても
標準出力が複製に失敗するとです・・・
0880デフォルトの名無しさん
NGNG常に0(stdin)と1(stdout)と2(stderr)です。
0881デフォルトの名無しさん
NGNGほんとに?
0882デフォルトの名無しさん
NGNG子プロセスが dup2(fd[1],1) とかしたら
そこで止まってしまうとです
親からそのパイプに書き込むとSIG_PIPEを
つかんでアボートするとです
0883デフォルトの名無しさん
NGNG親: 1, 子: 0だろ。
親1(stdout)→0(stdin)子だから。
> 親からそのパイプに書き込むとSIG_PIPEをつかんでアボートするとです
それはfd[0]をopenしたままのprocessがいないんだね。
0884デフォルトの名無しさん
NGNGパイプを2つ作って以下の通信をするのですが、
親: fd1[1] → 子: fd1[0]
親: fd2[0] ← 子: fd2[1]
ここで、子の入出力を標準入出力に複製したいとです
親: fd1[1] → 子: 0( stdin )
親: fd2[0] ← 子: 1( stdout )
つまり、子プロセスの側で
dup2( fd1[0], 0 )
dup2( fd2[1], 1 )
とすれば良いと思ったのですが、
dup2( fd2[1], 1 ) で子プロセスの処理が
止まってしまうんです・・・
そこで、親がパイプを書くとやっぱりSIG_PIPEっす
パイプの複製で止まってるから駄目なんでしょうかね
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGログ出力ではdup2 を呼んでそこで子プロセスが止まっているみたいです
0887デフォルトの名無しさん
NGNGgdb, strace, ltraceを使え。
既に動いても、PID指定でattach出来る。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNGでも、dup2( fd2[1], 1 )
を呼んだところで子がSIG_CHILD おこして終わってるみたいですよ
ltrace,strace どちらも
--- SIGCHLD (Child exited) ---
と出てます
子が終わってるので、パイプに書こうとすると SIG_PIPE を
起こすみたいですね
0890デフォルトの名無しさん
NGNGWinのようなOSですか?
0891デフォルトの名無しさん
NGNGいえ美容院です
http://www.unix.co.jp/
0892デフォルトの名無しさん
NGNGMacOS X のことだよ。
0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNGgetpid最高!!
getpid最高!!
getpid最高!!
もう手放せない。朝も昼も
getpid最高!!
getpid最高!!
getpid最高!!
0895デフォルトの名無しさん
NGNGSIGCHLDは子プロセスが終了した時に、
親プロセスに飛んでくるsignal。
君の知りたいのは子供が終了する原因だろ。
strace, ltraceで-fしろよ。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNGUNIXゆーざの皆さんって実はオシャレだったのか・・・俺勘違いしてたよ。
0898デフォルトの名無しさん
NGNGまじめにだまされた…
0899デフォルトの名無しさん
NGNGこんな糞HPクラック汁
0900デフォルトの名無しさん
NGNG0901!omikuji!dama
NGNG0902デフォルトの名無しさん
NGNGよくみるとモデルがブサイコな件について
0903デフォルトの名無しさん
NGNG/etc/*.conf
のフォーマットって統一されていませんよね?
例えば、
aaaa=yes
bbbbb = no
というような文字列解析のC言語ライブラリとか
あるといいのですが、どなたか知りませんか?
0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG>あるといいのですが、どなたか知りませんか?
そんなものはない。
どうやら君も、UNIXの暗黒面に片足突っ込んだようだね。
UNIXは死滅するまでずっとこのままだ。
残念だったな。
嫌なら君も、そんなUNIXの退廃的嗜好を打ち崩すべく努力したまえ。
0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGtclは使っているのを見ないけど、なんでかねえ。
(売り物のCADソフトでは使ってるけど)
0909デフォルトの名無しさん
NGNG0910デフォルトの名無しさん
NGNG使うときに調べるからリンクはしなくて良かったのに。
でも、googleへのリンクの方が助かったな。
0911デフォルトの名無しさん
NGNG0912デフォルトの名無しさん
NGNG0913デフォルトの名無しさん
NGNGで
$1に'x'
$2に'y'
が入る
0914デフォルトの名無しさん
NGNGって何?
0915デフォルトの名無しさん
NGNG0916デフォルトの名無しさん
NGNG0917デフォルトの名無しさん
NGNGハンドラ内では呼び出し可能なAPI/SYSCALLに制限があるので
コンテキストをハンドラ外に移動させてから
やりたいことをやるようにした方がいいと考えています。
とはいえ、どうやって移動させるのがいいんでしょうね。
0918デフォルトの名無しさん
NGNGマルチスレッド + sigwait()
0919デフォルトの名無しさん
NGNG現在、LINUX、C言語でプログラムを書いてます。
その中で、fork()した複数のプロセスが共有メモリにアクセスします。
そこでファイルを用いた排他制御を行いました。
プロセスIDは異なるのですが、プロセスの名前が
同じなのでファイルで排他制御ができているのか気になるのですが
教えてください。
0920デフォルトの名無しさん
NGNG0921デフォルトの名無しさん
NGNG> 教えてください。
何を教えて欲しいんだ?
排他制御のやり方か?
排他制御ができているかの確認方法か?
そもそも、
> その中で、fork()した複数のプロセスが共有メモリにアクセスします。
> そこでファイルを用いた排他制御を行いました。
共有メモリを使っているのに、なぜ System V IPC や POSIX IPC のセマフォを使わん。
0922デフォルトの名無しさん
NGNG0923デフォルトの名無しさん
NGNGsigsetjmp+siglongjmp
0924デフォルトの名無しさん
NGNG鈴木太郎さんと田中太郎さんが、男子便所にうんこしに行きました。
両方、太郎さんなので、同じ便座に座ってないか心配なのですが
教えてください。
0925デフォルトの名無しさん
NGNGだね
0926デフォルトの名無しさん
NGNGsockaddr構造体が通常よく見るものと違って,↓で記述されてました
<sys/un.h>の一部
/* Structure describing the address of an AF_LOCAL (aka AF_UNIX) socket. */
struct sockaddr_un
{
__SOCKADDR_COMMON (sun_);
char sun_path[108];/* Path name. */
};
したがって,通常のようにsun_familyにAF_LOCALを指定できません.
どうすればよいのでしょうか?
0927デフォルトの名無しさん
NGNG> したがって,通常のようにsun_familyにAF_LOCALを指定できません.
ってどういう意味だよ。この呆けが。
man 7 unix読めよ、このタコ。
__SOCKADDR_COMMON()の定義くらい調べろ、この猿。
0928デフォルトの名無しさん
NGNGアホとしか言いようがないが、とりあえずC言語の勉強でも
もう一度してみたらどうか。
0929前スレ282
NGNG> あるいは使用例としてよく出てくるんですが
> 実際、シグナルハンドラからのlongjmp( )は安全ですか?
ttp://www.opengroup.org/onlinepubs/009695399/functions/xsh_chap02_04.html
より引用。
> In the presence of signals, all functions defined by this volume of
> IEEE Std 1003.1-2001 shall behave as defined when called from or
> interrupted by a signal-catching function, with a single exception:
> when a signal interrupts an unsafe function and the signal-catching
> function calls an unsafe function, the behavior is undefined.
で、malloc()もlongjmp()もsiglongjmp()もsignal unsafe。
よって、「malloc()中にシグナル発生 → シグナルハンドラ内でlongjmp()
(またはsiglongjmp())呼び出し」となった場合の動作は「undefined」。
実際にglibcのソースを眺めてみたが、シグナルに対して特別なことをやっては
いないみたいだから、メモリリークやデッドロックが発生する可能性があるな。
> 2. シグナルハンドラとそうでない部分との排他制御は
> そうでない部分で、シグナルをマスクするだけで十分ですか?
OK.
> 3. シグナルハンドラが実行されているさいちゅうに
> 多重に呼び出されることはありますか?
ここらへんについては、BSD由来のsignal()とSysV由来のsignal()とで
挙動が大きく違っていたが、新しいシグナル操作関数であるsigaction()では
そこら辺の混乱が解消されている。
ttp://www.opengroup.org/onlinepubs/009695399/functions/sigaction.html
SA_NODEFERの項を見よ。
0930デフォルトの名無しさん
NGNGファイル終端(EOF)を切り詰めたいのですが、
自由にEOFの位置を設定できるシステムコールが何なのか分かりません。
WindowsAPIで言うところのSetEndOfFileみたいなのです。
もしそういうシステムコールがない場合は、エミュレートする何か別の方法とかあれば教えてください。
よろしくお願いします。
0931デフォルトの名無しさん
NGNG2. EOFまで読んでから、-1相対位置seek。
1推奨。(ファイルの長さに左右されない)
seekは、lseek(2) or fseek(3)で。
0932デフォルトの名無しさん
NGNGファイルサイズを指定長に設定するという
truncateというのがあるけど、意図と一致するか不明。
引数がパス名みたいだけど。
#include <sys/types.h>
int truncate(const char *path, off_t length)
0933デフォルトの名無しさん
NGNGint ftruncate(int fd, off_t length)
0934930
NGNGどうやらftruncateでいけそうです。
どうもありがとうございました。
0935デフォルトの名無しさん
NGNG0936デフォルトの名無しさん
NGNG$COMMAND --help
としたときの出力先が、標準エラー出力のコマンドがあるんですが、
本来なら、これは標準出力の方が正しいんですよね?この辺って
暗黙の了解みたいなのはあるんですか?
0937デフォルトの名無しさん
NGNG0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG0940デフォルトの名無しさん
NGNG0941デフォルトの名無しさん
NGNG通常、パイプラインで使うことを想定してエラー情報はエラー出力にする。
なのでツールの規模によっては、Usageはエラー処理の範疇なのでエラー出力で行なう。
まぁ、標準エラー出力でもパイプラインで処理できるから不都合はなかろ。
0942デフォルトの名無しさん
NGNGで見れなかったときの悲しみ
0943デフォルトの名無しさん
NGNGの引数オプションってGNU推薦のやつだよね
-短いばーじょん
--長いばーじょん
・・・馬鹿?
0944デフォルトの名無しさん
NGNG0945デフォルトの名無しさん
NGNGん?GNU が?
まったくその通りだと思います。
0946デフォルトの名無しさん
NGNGhoge --help |& less
or
hoge --help 2>&1 | less
自分の無知をツールの所為にするな。
>>944
getoptでは'--'を適当に処理できない。
0947デフォルトの名無しさん
NGNGこんなの馬鹿シェルしょちゅう使ってないと覚えないよ:p
嗚呼、こんな意味不明な文字列並べて喜んでるUNIX文化と早く手を切りたい
0948デフォルトの名無しさん
NGNG0949デフォルトの名無しさん
NGNG0950デフォルトの名無しさん
NGNGはげ同
0951デフォルトの名無しさん
NGNGそんくらいのことはあんただけじゃなくてみんな知ってる。
そんな回りくどいことをやって「こうすれば出来る」とかゆーてるのは、
ただのあふぉ。進歩しねーぞ(笑)
0952デフォルトの名無しさん
NGNG>>948
0953デフォルトの名無しさん
NGNG2>&1こんなのお得意の名前補完もできねーじゃん。馬鹿?
この馬鹿シェルって伝統だとか無意味なことに固着しんのか知らねーけどさ
全然進歩しないよね。
キモイキチガイの作ったシェルいつまでも使ってんじゃねーよヴォケ
0954デフォルトの名無しさん
NGNG×:そんな回りくどいことをやって「こうすれば出来る」とかゆーてるのは、
○:そんな回りくどいことをやって「こうすれば出来る」とかゆーて悦に逝ってるのは、
こんな感じかな。。。
0955デフォルトの名無しさん
NGNGはげ同
0956デフォルトの名無しさん
NGNG(´-`).。oO(ろくにプログラミングできそうにない奴がなんでここにいるだろう?)
0957デフォルトの名無しさん
NGNG>>948
0958デフォルトの名無しさん
NGNG0959デフォルトの名無しさん
NGNGいまだに代替できるモノがないって異常じゃねーか?
ソフトウェアで進化ないのってヤバイよね
商業的にも絶対大成しない
こんなの抱えてるUNIXが哀れでしょうがないよ
パラダイムシフトの足ひっぱりまくり
ユーザーが高齢化しすぎて欲求が枯渇してんのか?
つーか使ってる奴いるの?
いいかげん氏ねよ?
0960デフォルトの名無しさん
NGNG0961デフォルトの名無しさん
NGNG>>953
はげ同
0962デフォルトの名無しさん
NGNGshの代替はあるのでは?
0963デフォルトの名無しさん
NGNG0964デフォルトの名無しさん
NGNG>>957 >>952とか情けない反復しかできねーのな
こういうのって自閉症っていうの?
ちょっと余裕のある会社とかになんかいるよね。
他人と全くしゃべらない奴。
UNIX好きな奴って、まるっきりそいつらと同類。
おまえら異常だよ?
病院行け
0965デフォルトの名無しさん
NGNGもったいぶってないで、オマエが説明しろ。
0966デフォルトの名無しさん
NGNGわざわざ知恵をつけてやることもない。
0967デフォルトの名無しさん
NGNGなんだかんだいうても、説明できないやつ。
0968デフォルトの名無しさん
NGNG0969デフォルトの名無しさん
NGNG下らない話は他所で。マ板とか。
0970デフォルトの名無しさん
NGNG時間感覚ゼロだな
さすが自閉症
いいかげん自分らの異常さを認めろよ
0971デフォルトの名無しさん
NGNG>getoptでは'--'を適当に処理できない。
なんだその"適当に処理"って。
一言もそんな事言ってないではないか。大丈夫か?
0972デフォルトの名無しさん
NGNG>946は>944に対するリプライだと書いてあるが、それでも判らないのかな?
それとも、>944を読めなかったのかな?
>958もそうだけど、もう少し文章読めないもんかね。
0973デフォルトの名無しさん
NGNG0974デフォルトの名無しさん
NGNG走る車の屋根に登って風になったつもりで始めるのさ
ハートにひびが入るほど綺麗な海を探しに行く物語
夢を失くした友と二人で風にもらった秘密の合言葉で
この広い世界は何のためにあるのか
僕たちは誰のために生きてるのか
愛する人のためにすべてを捨てられるとか
そんな言葉はもういやだ
荒れ果てた原野で生きる小さな虫の姿に心が揺れる
ハートにひびが入るほど綺麗な海を探しに行く物語
走る車の屋根に登って風になったつもりで始めるのさ
0975デフォルトの名無しさん
NGNG0976デフォルトの名無しさん
NGNG3とか4とか5とかはどういう名前にするの?
0977デフォルトの名無しさん
NGNG俺は最近スレを立てたから立てられないけど。
0978デフォルトの名無しさん
NGNG0979デフォルトの名無しさん
NGNG前スレ
Part4 http://pc5.2ch.net/test/read.cgi/tech/1095843584/
Part3 http://pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 http://pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 http://pc2.2ch.net/tech/kako/992/992057422.html
関連スレ
Cygwin使っている人いますか? その13 (UNIX板)
http://pc5.2ch.net/test/read.cgi/unix/1099157755/
Cygwin使っている人いますか? 3 (Windows板)
http://pc5.2ch.net/test/read.cgi/win/1090131123/
関連板
http://pc5.2ch.net/unix/
http://pc5.2ch.net/linux/
0980デフォルトの名無しさん
NGNGThe Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
http://www.opengroup.org/onlinepubs/009695399/toc.htm
【必読書】
Advanced Programming in the UNIX(R) Environment
http://www.amazon.com/exec/obidos/tg/detail/-/0201563177/
Unix Network Programming
Vol. 1: The Sockets Networking API, Third Edition
http://www.amazon.com/exec/obidos/tg/detail/-/0131411551/
UNIX Network Programming
Volume 2: Interprocess Communications (2nd Edition)
http://www.amazon.com/exec/obidos/tg/detail/-/0130810819/
0981デフォルトの名無しさん
NGNGhttp://www.linux.or.jp/JM/#Search
GNU Make 日本語リファレンス
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html
0982デフォルトの名無しさん
NGNG0983デフォルトの名無しさん
NGNG0984デフォルトの名無しさん
NGNG別スレがあるしなあ。
0985デフォルトの名無しさん
NGNGネットワークプログラミング相談室 Port12
http://pc5.2ch.net/test/read.cgi/tech/1102427855/
マルチスレッドプログラミング相談室 その3
http://pc5.2ch.net/test/read.cgi/tech/1098268137/
0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNG誰か頼む
Part3のミラー
http://makimo.to/2ch/pc5_tech/1085/1085930894.html
Part2のミラー
http://makimo.to/2ch/pc5_tech/1055/1055110889.html
0989デフォルトの名無しさん
NGNGじゃ埋めるか
0991デフォルトの名無しさん
NGNG│
├─ お父さんには魔王が見えないの。かんむりをかぶって、長い衣を着ている・・・ 派
│
└─ あれはたなびく霧だ・・・派(現実主義派)
0992デフォルトの名無しさん
NGNG│
├─ お父さん、お父さん!きこえないの。魔王がぼくになにかいうよ派
│
└─落ち着きなさい、枯葉が風にざわめいているだけだよ派 (慎重派)
0993デフォルトの名無しさん
NGNG埋める前にリンク先確認してくれよ
0994デフォルトの名無しさん
NGNG│
├─ お父さん、お父さん!見えないの、あの暗いところに魔王の娘が! 派
│
└─ 見えるよ。だが、あれは古いしだれ柳の幹だよ派(中立派)
0995デフォルトの名無しさん
NGNG│
├─ おとうさん、おとうさん!魔王がぼくをつかまえる!魔王がぼくをひどい目にあわせる! 派
│
└─ はぎょっとして、馬を全力で走らせた。あえぐ子供を両腕に抱え、やっとの思いで館に着いた・・・派(実質、腕に抱えられた子はすでに死んでいた派)
0996デフォルトの名無しさん
NGNG│
├─ かんむりをかぶって長い衣を着ているよ派(ロイヤル派)
│
├─ なんかやたら話し掛けてくるよキモいよ派
│
└─ むりやり誘拐されて酷い目にあわせられたよ派(お前は既に死んでいる派)
魔王はいないよ派
│
├─ あれはたなびく霧だよ派(現実逃避派)
│ ├ 枯葉が風にざわめいているだけだよ派(派生)
│ └ あれは古いしだれ柳の幹だよ派(派生)
│
└─ いないと思うけどぎょっとして馬を全力で走らせるよ派(手遅れ派)
俺が魔王だよ派
│
├─ 可愛いショタをむりやり誘拐しちゃうよ派(ショタコン派)
│
├─ 金の服を私の母さんが沢山用意して待ってるよ派(マザコン派)
│
├─ 私の娘たちがお前をここちよくゆすぶり、踊り、歌うよ派(ドタコン派)
│
└─ とりあえず実力行使だよ派(猪突猛進派)
0998デフォルトの名無しさん
NGNG0999デフォルトの名無しさん
NGNG中学のときに音楽で歌ったよこれ
1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。