UNIXプログラミング質問すれ Part7

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド

前スレ
Part6 http://pc8.2ch.net/test/read.cgi/tech/1116908090/
Part5 http://pc8.2ch.net/test/read.cgi/tech/1105723117/
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

Part3のミラー
http://makimo.to/2ch/pc5_tech/1085/1085930894.html
Part2のミラー
http://makimo.to/2ch/pc5_tech/1055/1055110889.html

関連スレ
Cygwin使っている人いますか? その14 (UNIX板)
http://pc8.2ch.net/test/read.cgi/unix/1107587275/
Cygwin使っている人いますか? 3 (Windows板)
http://pc8.2ch.net/test/read.cgi/win/1090131123/
ネットワークプログラミング相談室 Port13
http://pc8.2ch.net/test/read.cgi/tech/1109793931/
マルチスレッドプログラミング相談室 その3
http://pc8.2ch.net/test/read.cgi/tech/1098268137/

関連板
http://pc8.2ch.net/unix/
http://pc8.2ch.net/linux/
2デフォルトの名無しさん:2005/09/22(木) 16:17:57
>>1
板違いです

UNIX板
http://pc8.2ch.net/unix/
3デフォルトの名無しさん:2005/09/22(木) 16:18:15
【POSiX】
The 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/
4デフォルトの名無しさん:2005/09/22(木) 16:19:26
man on www
http://www.linux.or.jp/JM/#Search

GNU Make 日本語リファレンス
http://www.ecoop.net/coop/translated/GNUMake3.77/make_toc.jp.html

Unix Programming Frequently Asked Questions 日本語訳
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html
5デフォルトの名無しさん:2005/09/22(木) 16:19:44
configureが嫌いな人は↓で愚痴を吐きましょう。

【死ね】configure大嫌い【RMS】
http://pc8.2ch.net/test/read.cgi/tech/1114223450/
6デフォルトの名無しさん:2005/09/22(木) 16:21:33
>>1
>ネットワークプログラミング相談室 Port13
>http://pc8.2ch.net/test/read.cgi/tech/1109793931/
>マルチスレッドプログラミング相談室 その3
>http://pc8.2ch.net/test/read.cgi/tech/1098268137/

まったく関連スレじゃないけど?
いいかげんなこと書くなよ
7デフォルトの名無しさん:2005/09/22(木) 16:23:48
するとこれも板違いか。
どうせ過疎スレになる運命だしUNIX板で引き取るべきだよん。

XWindowプログラミング 質問箱
http://pc8.2ch.net/test/read.cgi/tech/1127340315/
8デフォルトの名無しさん:2005/09/22(木) 16:27:52
>>6
UNIX厨が出てくると逆に話がややこしくなるスレだよな。
そこってw
9デフォルトの名無しさん:2005/09/22(木) 16:33:27
前スレの987以降(999は除く)の自作自演は死んどけ
10デフォルトの名無しさん:2005/09/22(木) 16:44:30
>>1
悪いけど板違いだそうです。

以下へ誘導してください。

UNIX板
http://pc8.2ch.net/unix/
11デフォルトの名無しさん:2005/09/22(木) 16:54:03
Part7まで続いているスレなのに
今になって板違いとか騒いでるのは一体何なの?
12デフォルトの名無しさん:2005/09/22(木) 16:56:02
素直にUNIX板へ移動よろ。
13デフォルトの名無しさん:2005/09/22(木) 17:00:54
UNIX板に立てれば、わざわざ「UNIX」プログラミングと断る必要ないし
おれも移動には賛成するよ。
UNIX板に「プログラミング質問すれ」立てればいい。
14デフォルトの名無しさん:2005/09/22(木) 17:02:38
なるほど。
15デフォルトの名無しさん:2005/09/22(木) 17:10:25
じゃあ誰かスレ立てよろ
16デフォルトの名無しさん:2005/09/22(木) 17:10:39
UNIX板に行くとLinux排除するやつが出てくるからここでいい。
17デフォルトの名無しさん:2005/09/22(木) 17:16:31
ここでもLinux厨は排除したいのだが。
18デフォルトの名無しさん:2005/09/22(木) 17:20:14
プログラミング質問すれ Part7

で立てようとしたけど無理だった。
どっか依頼してこようか?
19デフォルトの名無しさん:2005/09/22(木) 17:23:00
いいじゃんこのままで。
20デフォルトの名無しさん:2005/09/22(木) 17:24:31
WindowsでのプログラミングはWindows板で。となるのか?
21デフォルトの名無しさん:2005/09/22(木) 17:26:19
Windowsはデファクトスタンダードですから。
UNIXはダメ!
22デフォルトの名無しさん:2005/09/22(木) 17:28:41
なんだ、要するにUNIXを目の仇にしている奴ってことか。
23デフォルトの名無しさん:2005/09/22(木) 17:29:53
おれUNIX大好きだけど、
この板にあるのは、なんか違うんじゃないかって。
24デフォルトの名無しさん:2005/09/22(木) 17:35:43
>>23
なぜ?
25デフォルトの名無しさん:2005/09/22(木) 17:35:52
>>1
このスレを忘れてもらっては困ります。
責任取ってください。

【死ね】configure大嫌い【RMS】
http://pc8.2ch.net/test/read.cgi/tech/1114223450/
26デフォルトの名無しさん:2005/09/22(木) 17:36:47
>>24
がうざいから。
27デフォルトの名無しさん:2005/09/22(木) 17:37:21
>>26
理由になってませんね
28デフォルトの名無しさん:2005/09/22(木) 17:37:54
>>27
がうざいから。
29デフォルトの名無しさん:2005/09/22(木) 17:38:11
この板にあって然るべきだとは思うけど、
現実問題としてS/N比はUNIX板にある場合の方がずっと高そうだ。
30デフォルトの名無しさん:2005/09/22(木) 17:39:23
プログラム板でプログラミングのスレが迫害される理由は無い。
31デフォルトの名無しさん:2005/09/22(木) 17:41:08
>>30
隔離板へどうぞ
32デフォルトの名無しさん:2005/09/22(木) 17:50:17
>>30
だな
33デフォルトの名無しさん:2005/09/22(木) 17:52:52
>>30
*NIX厨がこの板へ足を運ぶことが問題。
34デフォルトの名無しさん:2005/09/22(木) 17:59:55
自治スレでID制の導入が検討され始めたな。
厨房ってのはwinにしろunixにしろウザいから俺は賛成だ。
35デフォルトの名無しさん:2005/09/22(木) 20:33:06
UNIX板にスレが立ちましたので移動をお願いいたします。

プログラミング質問すれ Part1
http://pc8.2ch.net/test/read.cgi/unix/1127388574/
36デフォルトの名無しさん:2005/09/22(木) 20:42:50
何事もなかったように、このままこのスレは続きます。
37デフォルトの名無しさん:2005/09/22(木) 20:46:41
まあ削除されるまでは厨の隔離スレかな。
38デフォルトの名無しさん:2005/09/22(木) 20:48:20
削除依頼出した?削除理由はなに?
39デフォルトの名無しさん:2005/09/22(木) 21:07:08
マジで立てやがった。氏ね
40デフォルトの名無しさん:2005/09/27(火) 07:22:39
>>6
関連してるだろ。てゆうか Port13 建てたの俺だし。
41デフォルトの名無しさん:2005/09/27(火) 10:50:12
getrlimit, setrlimit の RLIMIT_AS に対応する、
プロセスの仮想メモリ使用サイズを取得する
システムコール、ライブラリ関数は無いのでしょうか?

調べたところ、 /proc のファイルを読み込んで解析すれば
望む結果は得られそうなんですが、面倒なうえに
処理速度も問題になりそうな場面で、
関数呼び出しで済ませたいと思っています。
42デフォルトの名無しさん:2005/09/27(火) 10:50:43
質問age
43デフォルトの名無しさん:2005/09/27(火) 11:40:48
>>41
せめてOSくらいは書けよ。だから犬厨と言われるんだ。
それからmanくらい読め。
man getrlimitの一番下に関連する項目がある。
Linuxは知らんが、man getrusageしてみろ。
4441:2005/09/27(火) 11:55:10
>>43
すいません Linux です。
getrusage は最初に見たのですが、仮想〜で探していたので
ru_maxrss を見つけて、RAMに割り当てられたものしかないのかと
勘違いしてしまいました。

今、再度確認して ru_minflt を見つけました。
これが望む値になりそうで Linux でも使えるようです。
(この変数名の意味はさっぱりわかりませんが。 flt は、 fault ?)

とりあえずこれで試してみます。
ありがとうございました。
45デフォルトの名無しさん:2005/10/01(土) 17:36:55
ファイルの削除はどの関数を使えばよいのでしょうか?
46デフォルトの名無しさん:2005/10/01(土) 18:31:41
>>45
remove()
47デフォルトの名無しさん:2005/10/01(土) 22:01:08
unlink
とか書いてみる
48デフォルトの名無しさん:2005/10/02(日) 08:10:03
cygwinさんは、unix_Cのシステムコール使えますか??
49デフォルトの名無しさん:2005/10/02(日) 08:11:59
unix_Cの教科書のコードがcygさんで、8割方コンパイルできたよ。
50デフォルトの名無しさん:2005/10/03(月) 01:39:06
stat でファイルのアクセス権を取得したんだが、これをC言語でRWX に変換する方法はありませんか?このために関数作るのもな。環境はLinuxです。
51デフォルトの名無しさん:2005/10/03(月) 01:41:19
chmod(2)
52デフォルトの名無しさん:2005/10/03(月) 01:59:03
>>50
>このために関数作るのもな。

ハゲワラ
53デフォルトの名無しさん:2005/10/03(月) 03:25:21
>>50はモードを文字列にして表示したいんだと思う
54デフォルトの名無しさん:2005/10/03(月) 03:36:22
>>53
あなたの想像、予想、妄想なんて興味ありませんよ
55デフォルトの名無しさん:2005/10/03(月) 08:20:36
>>54
だから何?
56デフォルトの名無しさん:2005/10/03(月) 08:29:11
>>50
ls.cの中
57デフォルトの名無しさん:2005/10/03(月) 10:00:29
phpやperlからメールを送る方法はわかるのですが、Cの場合、どのようにやればよいのでしょうか?
58デフォルトの名無しさん:2005/10/03(月) 11:19:41
phpやperlと同じ方法でやれ。
59デフォルトの名無しさん:2005/10/03(月) 12:46:05
mailコマンドをpopen()して垂れ流す方法から自分でSMTPを喋る方法まで
まあ好きにしる
60デフォルトの名無しさん:2005/10/03(月) 23:17:11
>>51
chmod(2)
2ってなんですか?
これでは表示されないみたい
61デフォルトの名無しさん:2005/10/03(月) 23:23:37
man 2 chmod
62デフォルトの名無しさん:2005/10/03(月) 23:44:49
ls.cを見ていますがいまいちわかりません。
aclが関係しているんですか?
63デフォルトの名無しさん:2005/10/04(火) 04:42:30
acl は関係ない。
この strmode() がそれなんだが、そんなに難しいか?
ttp://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/string/strmode.c?rev=1.16&content-type=text/x-cvsweb-markup
C言語の勉強をやり直した方がいい気がする…
64デフォルトの名無しさん:2005/10/04(火) 09:32:49
>>60
man man
65デフォルトの名無しさん:2005/10/04(火) 09:35:28
mite
66デフォルトの名無しさん:2005/10/05(水) 13:27:59
実行ディレクトリの取得方法を教えてください
67デフォルトの名無しさん:2005/10/05(水) 13:32:53
次の質問をどうぞ
68えすぱぁ:2005/10/05(水) 13:41:53
69デフォルトの名無しさん:2005/10/05(水) 20:28:42
自分自身の実行ファイルの場所を知りたいのですが教えてください
70デフォルトの名無しさん:2005/10/05(水) 20:37:22
>>69
それは何度も繰り返し質問されている議題です
71デフォルトの名無しさん:2005/10/05(水) 20:50:39
pwd
72デフォルトの名無しさん:2005/10/06(木) 06:57:43
コンソール上でウィンドウを出したいのですがAPIを教えてください
73デフォルトの名無しさん:2005/10/06(木) 07:01:04
newwin() とか subwin とか。
74デフォルトの名無しさん:2005/10/06(木) 07:18:08
system("startx ウィンドウを出すコマンド名 -- :ディスプレイ番号");
75デフォルトの名無しさん:2005/10/06(木) 11:08:09
system関数で&付のコマンドを実行して、そのコマンドが終了する前にプログラムを終了すると、ゾンビプロセスが残ってしまうのですが、
コマンドの終了を待たずに、プログラムを正常に終了するにはどのようにしたらよいのでしょうか?
76デフォルトの名無しさん:2005/10/06(木) 12:54:46
それが原因でゾンビができるとは思えないが。
7775:2005/10/06(木) 15:59:39
system関数ではゾンビプロセスは発生しないと考えて良いのでしょうか?
78デフォルトの名無しさん:2005/10/06(木) 16:03:08
出来るが、
> そのコマンドが終了する前にプログラムを終了すると、
これは余分な条件。孫と祖父の関係だからゾンビ関係ない。
79デフォルトの名無しさん:2005/10/06(木) 20:59:26
で、ゾンビが残ると何が問題なんだ?
そのうち消えるのに
80デフォルトの名無しさん:2005/10/06(木) 21:07:20
消える保障なんてねーよ馬鹿
81デフォルトの名無しさん:2005/10/06(木) 21:24:49
消えないならOSの不具合ですね
82デフォルトの名無しさん:2005/10/06(木) 23:27:27
ゾンビとオーファン間違っている奴いねーか?

>>75
システム的に、正常終了するためにゾンビになってwait()待機中なんだが…
83デフォルトの名無しさん:2005/10/07(金) 02:50:24
二重起動を抑止する方法を教えてください。
Windowsでは経験があるのですが、Unixの場合どのようにすればよいのでしょうか?
84デフォルトの名無しさん:2005/10/07(金) 03:41:10
>>83
Windowsと同じ要領でいいと思います。
85デフォルトの名無しさん:2005/10/07(金) 03:58:30
頑張ってマルチを想定して作ろう
じゃなきゃ、ファイルをロックする。
実行ファイル自身を消す。
/sbinにでも置く、とどめにinit 1をコールする。
86デフォルトの名無しさん:2005/10/07(金) 04:09:49
>>84
もう少し詳しく教えていただけないでしょうか?
具体的には、ミューテックスの作成方法がわかりません。
87デフォルトの名無しさん:2005/10/07(金) 04:41:01
>>86
Windowsと同じ要領でいいと思います。
88デフォルトの名無しさん:2005/10/07(金) 04:52:29
CreateMutexを使うにはどのヘッダをインクルードすればよいのでしょうか?
89デフォルトの名無しさん:2005/10/07(金) 09:19:23
>>83
ドラエもんなら、/var/run/ドラエもん名.pidにpidを書いとく。
ユーザアプリなら、~/.アプリ名/lockをO_EXCLで作成かな。
90デフォルトの名無しさん:2005/10/07(金) 09:27:00
> ドラエもんなら、/var/run/ドラエもん名.pidにpidを書いとく。
> ユーザアプリなら、~/.アプリ名/lockをO_EXCLで作成かな。

しょぼ。
91デフォルトの名無しさん:2005/10/07(金) 09:29:34
ホントUNIXってしょぼいわ
こんな基本的なシステム関数すら提供されてないとは
92デフォルトの名無しさん:2005/10/07(金) 09:39:31
>>91
>こんな基本的なシステム関数すら提供されてないとは

...
9341:2005/10/07(金) 09:42:38
>44 の ru_minflt を試してみましたが、やっぱりだめでした。
/proc/self/statm を scanf するのが最善手なのかもしれません。
94デフォルトの名無しさん:2005/10/07(金) 14:06:04
UNIXコンソール上でMSN Messenger機能を使いたいのですが、できませんか?
95デフォルトの名無しさん:2005/10/07(金) 14:08:21
>>94
それのどこがプログラミングの質問ですか?
つーか、IP Messengerでいいんでない?
96デフォルトの名無しさん:2005/10/07(金) 14:09:56
そういえば昔、terminal 用の ICQ クライアント使ってたなあ。
97デフォルトの名無しさん:2005/10/07(金) 14:33:29
>>95
Messengerプロトコルを知らん馬鹿は黙ってろ
98デフォルトの名無しさん:2005/10/07(金) 16:01:53
ではそれを知っているらしいお利口さんの>>97に解説キボン。
99デフォルトの名無しさん:2005/10/07(金) 16:15:41
UNIXプログラミングと関係ない話ししは他所でおねがいします。
100デフォルトの名無しさん:2005/10/07(金) 17:38:33
てゆうかいちいち相手するのが悪い
101デフォルトの名無しさん:2005/10/07(金) 23:37:05
自分が理解できないアプリケーションを作成するのは
UNIXプログラミングではないと思い込んでいるジジイ
がいるようですね
102デフォルトの名無しさん:2005/10/08(土) 00:19:19
「UNIXコンソール」に違和感
103デフォルトの名無しさん:2005/10/08(土) 00:50:19
つーかこんなスレ必要ないじゃん。
104デフォルトの名無しさん:2005/10/08(土) 01:10:47
やっぱりお前か
105デフォルトの名無しさん:2005/10/08(土) 01:23:14
青木みねろーさんの本は、Linux上のプログラミングを勉強する上で、一冊目としてどうでしょうか?
106デフォルトの名無しさん:2005/10/09(日) 11:07:05
lsコマンドのようにターミナルの文字に色を付ける方法を教えてください。
107デフォルトの名無しさん:2005/10/09(日) 11:14:28
その色の付く ls の出力をファイルにでも入れてよくながめてみたまへ。
108デフォルトの名無しさん:2005/10/09(日) 11:25:49
>>107
は?
109デフォルトの名無しさん:2005/10/09(日) 11:30:56
私の手元のlsは色がつかないなぁ。強調化されたり下線がついたりしているけど。
110デフォルトの名無しさん:2005/10/09(日) 11:34:26
>>106
lsがGNUのだとして、(以下*BSDは無視で)
$ ls --color=always | hexdump -C

man terminfo
man ncurses (Linux)
man curses

111デフォルトの名無しさん:2005/10/09(日) 11:36:58
$ printf "\033[01;34mtest\033[01;00mtest\n"
112デフォルトの名無しさん:2005/10/09(日) 11:55:11
>>108
「は?」じゃねえよボケ!
113デフォルトの名無しさん:2005/10/09(日) 12:08:43
ls>tmptmptmpか?
114デフォルトの名無しさん:2005/10/09(日) 20:52:53
>>113

出力先がファイルかどうかを見て、ファイルだったらエスケープ
シーケンスを吐かないような処理をしてるので、単にリダイレクト
するだけじゃ駄目。>>110 のようにするとか、script コマンドで
ログを取るとかしないと。
115デフォルトの名無しさん:2005/10/09(日) 21:27:36
>>114
マニュアル探した方が早いな。
116デフォルトの名無しさん:2005/10/10(月) 17:28:19
>>112
てめ、調子こいてんじゃねえぞ?
117デフォルトの名無しさん:2005/10/10(月) 17:34:14
わたしのためにあらそうのはよしてー
118デフォルトの名無しさん:2005/10/10(月) 18:11:18
つーかUNIXスレは板違いとかじゃなかった?
正直こんな感じ悪いスレならいらないけど。
>107とか変な奴ばっかり。
119デフォルトの名無しさん:2005/10/10(月) 18:17:19
UNIXのスレはひねくれた精神異常者ばっかり
そんなんだからWINDOWSにシェアで負けるんだよ
120デフォルトの名無しさん:2005/10/10(月) 18:24:43
>>118
じゃあWindowsのプログラミング技術関係も板違いなのか?
121デフォルトの名無しさん:2005/10/10(月) 18:25:04
>>119
それはお前のことだ
122デフォルトの名無しさん:2005/10/10(月) 18:27:08
>>118
お前が消えればまったく問題無い事ですね。
123デフォルトの名無しさん:2005/10/10(月) 18:30:07
>>118
UNIX板にスレを建てた誘導しようとしていた
キチガイが必死に自作自演していたなw
うまいことキチガイを隔離できててよかったんだがなあ
124デフォルトの名無しさん:2005/10/10(月) 19:03:33
最近、clone()とかrfork()とか、
UNIXenでも違いが増えてきたから、少しづつ統一していってくれないかな…
125デフォルトの名無しさん:2005/10/10(月) 19:13:54
UNIXプログラミングの話題だからといって、UNIXで育ったやつと
Windowsで育ったやつが同じスレで仲良くできるわけがないのだ。
双方キチガイ呼ばわりして荒れるのが自然の摂理。

と、重いマスタ。
126デフォルトの名無しさん:2005/10/10(月) 19:18:47
「自然の摂理」なんてなんだが仰々しい話は知らないけど、
UNIXに興味がないんだったら用はないはずだと思うけどな。
至って単純な話だと思うんだが。
127デフォルトの名無しさん:2005/10/10(月) 20:01:51
UNIXにしか興味が無い奴とUNIXにも興味がある奴では
仲良くできないよな
128デフォルトの名無しさん:2005/10/10(月) 20:02:26
まあUNIXは不の遺産を使い続けるしかないパラダイムだから
ひねた奴ばっかりです
129デフォルトの名無しさん:2005/10/10(月) 20:06:42
>>127
そんなことはないだろ
130デフォルトの名無しさん:2005/10/10(月) 20:09:12
"不"の遺産??
131デフォルトの名無しさん:2005/10/10(月) 20:10:52
つまりUNIX=不可ってことか。
納得。
132デフォルトの名無しさん:2005/10/10(月) 20:12:39
不動産
133デフォルトの名無しさん:2005/10/10(月) 20:13:36
要するに、UNIXが気に入らない奴がわざわざここまでやってきて荒らしているということだ
134デフォルトの名無しさん:2005/10/10(月) 20:19:03
いまさら何を。
135デフォルトの名無しさん:2005/10/10(月) 20:22:33
まあ、荒れてない方じゃないか?
板的にもApacheとかPerlとかUNIX発のsoftwareに恩恵受けている人が多いから。
これが「Mac OSプログラミング質問スレ」だったら大変なことに…
136デフォルトの名無しさん:2005/10/10(月) 20:28:40
大変な事にはならなかったよ。書き込み無くて消えたから。
137デフォルトの名無しさん:2005/10/10(月) 20:37:38
>>134
つまりキチガイが煽ったり暴れたりしているわけだ
IDがついていればあっさりあぼーんしているところだな
138デフォルトの名無しさん:2005/10/10(月) 23:15:49
>>137
わざわざこっちまで出張して来るなよ。
こういう奴は ID 変えながらカキコするから、ID 制になっても無駄なんだよ。
139デフォルトの名無しさん:2005/10/10(月) 23:28:07
>>138
そういう真性以外には効果があるということでよろしいか?
140デフォルトの名無しさん:2005/10/10(月) 23:38:26
なんで?
141デフォルトの名無しさん:2005/10/10(月) 23:39:09
粘着発生w
142デフォルトの名無しさん:2005/10/10(月) 23:42:18
>>138
出張して来るも何も、
ここのスレが建つときに荒らされそうになって危なかったから、
こっちからわざわざIDスレに出向いているんだが?
143デフォルトの名無しさん:2005/10/11(火) 00:01:41
当スレにスレタイが読める人間がいない件について
144デフォルトの名無しさん:2005/10/11(火) 00:09:06
IDスレから来ました
解決してやるから問題点を述べてください
145デフォルトの名無しさん:2005/10/11(火) 00:09:59
定期的に他スレから荒らしがやってきます
146デフォルトの名無しさん:2005/10/11(火) 00:13:26
>>144
まず最初にお前がうざい。消えろ
147デフォルトの名無しさん:2005/10/11(火) 00:13:50
てへ、ばれちゃいました?
148デフォルトの名無しさん:2005/10/11(火) 00:19:55
>>143
たしかにそろそろアホは放置して
普通の質疑に戻らないといけませんね。
149デフォルトの名無しさん:2005/10/11(火) 06:32:34
ファイルのロックの仕方を教えてください
150デフォルトの名無しさん:2005/10/11(火) 07:12:22
// sorry for my poor english.
#include <sys/file.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
  int lockfd;
  if (argc != 2) {  // check the argument
    printf("usage: ./a.out filename\n");
    return 0;
  }
  lockfd = open(argv[1], O_RDONLY);  // open file in read-only mode,
  if (lockfd == -1) {                // of course, you can use other mode.
    printf("cannot open file \"%s\"\n", argv[1]);
    return 0;
  }
  if (flock(lockfd, LOCK_EX | LOCK_NB) == -1) {  // try lock the file as non blocking
    printf("file is already locked\n");
    return 0;
  }
  printf("file is locked! please enter to exit\n");
  getchar(); // wait
  return 0;  // to unlock and close file is done by operating system :)
}
151デフォルトの名無しさん:2005/10/11(火) 21:25:33
んで、放置されちゃった>>148

152デフォルトの名無しさん:2005/10/12(水) 07:37:38
UNIX Cって、平気で長い関数書いてgoto使いまくったり
グローバル変数だらけってイメージしかない
153デフォルトの名無しさん:2005/10/12(水) 09:16:31
それ俺がよく見るWindowsプログラムの特徴
154デフォルトの名無しさん:2005/10/12(水) 09:57:59
gotoを使わず短い関数で綺麗に設計されたバグだらけのプログラム
gotoを使ったり長い関数を使いまくっているが目的を達成しているプログラム
155デフォルトの名無しさん:2005/10/12(水) 11:15:58
gotoは、それを使うパターンというのがあるからそれに則って使う分には
何の問題もない。
156デフォルトの名無しさん:2005/10/12(水) 12:24:18
>>155
それは正しい。だが
「それを使うパターン」というのが人によって違うという点が・・・
157デフォルトの名無しさん:2005/10/12(水) 13:26:33
>>154
前提条件がオカシイ。

gotoを使わず短い関数で綺麗に設計された目的を達成しているプログラム
gotoを使ったり長い関数を使いまくっているが目的を達成しているプログラム
158デフォルトの名無しさん:2005/10/12(水) 13:34:17
UNIX C じゃなくて単に C で書かれたプログラムの特徴かもしれんね。
ま、俺は goto は C++ でも平気で使うけど。
159デフォルトの名無しさん:2005/10/12(水) 13:38:24
>>156
それはパターンとは言わないんじゃないか。

>>158
C++だと間に変数定義の関係でジャンプできなかったりするのがちょっと不便ねえ。
まあずらせばいいんだけどさ。
160デフォルトの名無しさん:2005/10/12(水) 13:50:35
>>159
ブロックで囲めば飛び越せるよ。
161デフォルトの名無しさん:2005/10/12(水) 14:07:40
gotoの使用/不使用と関数の長短を同列に論じても意味があるとは思えない
162デフォルトの名無しさん:2005/10/12(水) 15:45:09
関数が長くなっていいならgotoいらないんだよ
163デフォルトの名無しさん:2005/10/12(水) 20:05:17
本題とは無関係な変数まで導入して意地でも goto 使わないやつがたまにいるよなw
164デフォルトの名無しさん:2005/10/12(水) 20:06:04
変数1個とgoto1個、どっちが有害かよく考えてみろ
165デフォルトの名無しさん:2005/10/12(水) 20:45:01
そりゃ当然、変数のほうが有害です。
期待に反する答えでしたか?
166デフォルトの名無しさん:2005/10/12(水) 21:15:16
突拍子もない飛び方してるgotoはそんなに見ないけどなぁ。
俺はアンチがいるみたいなんだ使わないが。
167デフォルトの名無しさん:2005/10/13(木) 00:13:03
if (A) { goto Y; }
X:
 〜S〜
 goto Y;
Y:
 〜T〜
 goto X;

この構造でgotolessにするにはコードのコピーが必要。
この還元不能が有名かな。

けど実際こんなケースはまったく遭遇しなくて、
例外処理の大域脱出、(これは例外や多段breakで済む場合が多い)
エラー処理の一本化、状態マシン実装くらいじゃないかな?
後はCでの多段continue。

168デフォルトの名無しさん:2005/10/13(木) 00:14:53
>>164
使い方による。
無計画なグローバル変数と計画的なgotoとかな。

スローガンを自分の中で消化せずにただ叫んでるだけって無意味だと思うが。
発展途上の極東地域の教育がそんな感じだな。旧日本とか北朝鮮とか。
169デフォルトの名無しさん:2005/10/13(木) 01:43:48
蒸し返すようで済まないが
gotoを使い短い関数で綺麗に設計された目的を達成しているプログラム
に対する言及が抜けているような気が
170デフォルトの名無しさん:2005/10/13(木) 01:50:30
それがUNIXプログラミングとどう関係があるのかね
171デフォルトの名無しさん:2005/10/13(木) 08:54:24
>>167
あと、末尾再帰のつもりで関数先頭付近にgoto、というのもある。
172デフォルトの名無しさん:2005/10/13(木) 18:47:48
こうやって見ると goto はプロ向けだね。
女子供はJavaでも使ってろ
173デフォルトの名無しさん:2005/10/13(木) 19:10:05
多重ループから直截抜ける手段と例外機構があればgotoが必要な場面は
ほぼ無くなる筈。
Cの場合はしょーがない。
174デフォルトの名無しさん:2005/10/13(木) 19:36:38
例外機構は遅い。
しかも最適化される処理系はほとんど無い。
175デフォルトの名無しさん:2005/10/13(木) 20:57:53
末尾再帰もサポートしないとgoto無くすのは無理
176デフォルトの名無しさん:2005/10/13(木) 23:55:27
再起を勝手に末尾再帰にするCのコンパイラあるよ。gccもやる。
177デフォルトの名無しさん:2005/10/14(金) 00:47:07
>>174
あくまで例外時にしか使わんのでパフォーマンスにはこだわらん。
178デフォルトの名無しさん:2005/10/14(金) 01:28:17
>>176
そうなんだけどC自体で保証されるわけじゃないからねえ。
gccもLispコンパイラ並にきちんとやってくれるわけじゃなく、場合によって
やらない(Cのセマンティクスを守るため?)ので、ジャンプに最適化するのを
期待する場合は一応アセンブリ出力を確認する必要がある。

>>177
例外機構は例外が発生しなくてもパフォーマンスに影響するんだが……
179デフォルトの名無しさん:2005/10/14(金) 01:51:02
>>178
最近の gcc なら実行速度に関しては例外が投げられない限りペナルティは無いよ。
コードサイズが増えるのは逃げられないけど。
180デフォルトの名無しさん:2005/10/14(金) 02:55:25
Linuxでman 7 socketのSO_RCVLOWATの項に
These two values are not changeable in Linux and their argument size is always fixed to 1 byte. getsockopt is able
to read them; setsockopt will always return ENOPROTOOPT.
とあったのですが実際にsetsockoptで2以上の値を設定してもENOPROTOOPTは返って来なかったので
getsockoptで確認してみたら設定した値になっていました
manが古いってことなんでしょーか
181デフォルトの名無しさん:2005/10/14(金) 09:29:09
Linuxのmanなんてメンテされとらんだろ
182デフォルトの名無しさん:2005/10/14(金) 18:44:22
すみません、C言語なら俺に聞けスレで誘導されてしまったので
大変申し訳ないのですが、こちらにマルチさせていただきます。

たとえば、sigaction()でSIGSEGVを捕捉したい時に、そのハンドラを
sigaction構造体のsa_handlerで設定しますよね。
でも、これを設定してしまうと、今度はSEGVした時にcoreを吐かなく
なってしまうと思います。
coreを吐かせるようにする(捕捉した関数の動作+元の動作も行いたい)
にはどうしたらいいのでしょうか?
183デフォルトの名無しさん:2005/10/14(金) 18:48:41
マルチには答えられんなあ
184デフォルトの名無しさん:2005/10/14(金) 19:30:42
185182:2005/10/14(金) 19:31:10
多分自己解決しました。
sa_flagsにSA_RESETHANDをセットして、ハンドラ内でraiseすればいいのではと思い
やってみたら何とかできたようです。
186デフォルトの名無しさん:2005/10/14(金) 19:43:12
ほんと、役立たずなスレwww
187デフォルトの名無しさん:2005/10/14(金) 20:58:31
シグナルとシステムコールの処理についての質問です
write()やsend()、recv()などを実行している時にsignalによって割り込まれ、-1が返ってEINTRが設定された時は
-1が返っているのでデータの書き込み、読み込み等は全くされていない
データが途中まで書き込み/読み込み、又は受信/送信されている
どちらが正しいんでしょうか
もし後者のような状態が正しいなら何byteまで書き込み、読み込みされたかを調べる方法はありますか?
188デフォルトの名無しさん:2005/10/14(金) 21:04:47
マニュアルぐらい読めよ。
EINTRがどんなときに設定されるか書いてあるぞ。
189デフォルトの名無しさん:2005/10/14(金) 23:17:25
マニュアルって、manのことか?
あの役立たずなmanのことか?あ?
190デフォルトの名無しさん:2005/10/15(土) 00:48:53
>>187
write()やsend()、recv()はそれぞれ何バイト読み書きするのかというパラメータを渡しています。
それぞれのシステムコールが失敗してー1が帰ってきたということは、
指定したサイズ分の読み書きに失敗したという意味です。

よって、データの読み書きがまったくされていないかも知れないし、
途中まで読み書きしている途中なのかも知れません。

また、このとき、何バイトまで処理できたかを知ることは出来ませんし、
きちんとしたエラー処理がプログラムでなされていれば、それを知る
必要もないと思います。
191デフォルトの名無しさん:2005/10/15(土) 00:50:56
最も役立たずなのは189
192デフォルトの名無しさん:2005/10/15(土) 00:52:43
最も期待されているのはスルーだから
193デフォルトの名無しさん:2005/10/15(土) 01:11:38
>>190
入出力がアトミックでないのならばエラー回復なんて無理ですよね。
194デフォルトの名無しさん:2005/10/15(土) 01:37:15
write時のEINTRはファイルポインタを変更しない
と(たぶんほとんどの)マニュアルに書いあるんだから
EINTRのときは一切出力してないんじゃないの?
195デフォルトの名無しさん:2005/10/15(土) 01:43:23
>>190
嘘を書く前にAPUEを読め
196デフォルトの名無しさん:2005/10/15(土) 01:47:36
>>190
>必要もないと思います。

勝手に思っててください。
197デフォルトの名無しさん:2005/10/15(土) 02:48:54
>>189>>190はカス

>>188が正しい。

>>187
英語苦手ですか? write(2)には
> EINTR The call was interrupted by a signal before any data was written.
とありますが?
つまり「before any data was written」でなければ、signalで中断されることはないのです。
198デフォルトの名無しさん:2005/10/15(土) 02:50:16
>>197
> signalで中断されることはないのです。

言いすぎた…
帰り値が-1になってerrnoがEINTRに設定されることはないのです。
199デフォルトの名無しさん:2005/10/15(土) 03:05:18
実に香ばしいヌレだな。禿ワロヌ
200デフォルトの名無しさん:2005/10/15(土) 12:48:31
>>190
0 で帰ってくることを言わなくていいのか?
201デフォルトの名無しさん:2005/10/15(土) 13:06:39
そんなこと言われなくてもわかってます。
それ以前に、そんな忠告するぐらいだったら最初から全部答えろやカスが。
202デフォルトの名無しさん:2005/10/15(土) 13:08:26
火病晒し上げw
203デフォルトの名無しさん:2005/10/15(土) 13:19:56
>>201
騙りさんですかw
204デフォルトの名無しさん:2005/10/15(土) 13:22:09
205デフォルトの名無しさん:2005/10/15(土) 13:26:49
でも>>201の言う事は最もだと思います。
スレ住人の皆様も少しはこのスレの存在意義を考えた発言をお願いします。>ALL
206デフォルトの名無しさん:2005/10/15(土) 13:30:41
>>205
そんなあなたも

そんなこと言われなくてもわかってます。
それ以前に、そんな忠告するぐらいだったら最初から全部答えろやカスが。

といわれてしまいます。
207デフォルトの名無しさん:2005/10/15(土) 13:33:53
>>201
>最初から全部答えろやカスが

>>190のことか?
208デフォルトの名無しさん:2005/10/15(土) 13:36:44
>>210

わからないからってそんなことしちゃダメですよw
209デフォルトの名無しさん:2005/10/15(土) 13:36:48
NGワード:カス
210デフォルトの名無しさん:2005/10/15(土) 13:39:10
メガンテ
211デフォルトの名無しさん:2005/10/15(土) 13:43:43
ワロタ
212デフォルトの名無しさん:2005/10/15(土) 13:55:02
sigaction(2)
write(2), send(2), recv(2)のどれか

読めばあっさり解決することだし。
213デフォルトの名無しさん:2005/10/15(土) 13:56:26
214デフォルトの名無しさん:2005/10/15(土) 13:58:23
NGワード:>>201
215デフォルトの名無しさん:2005/10/15(土) 14:06:54
>>213
そんなこと言われなくてもわかってます。
それ以前に、そんな忠告するぐらいだったら最初から黙っとれやカスが。
216デフォルトの名無しさん:2005/10/15(土) 14:43:21
I understand it even if you didn't mention.
You should at first answer it without such a meaningless comment.
You good-for-nothing.
217デフォルトの名無しさん:2005/10/15(土) 15:09:35
reading manual is the best way.
reading manual is the only way.
so, reading manual is your way.
if the answer is in the manual.
218デフォルトの名無しさん:2005/10/15(土) 15:59:31
219デフォルトの名無しさん:2005/10/15(土) 16:04:56
なにしゅーがぜよ
どきやー >>218
あてーは、高知九反田の侠客、鬼龍院政五郎の、鬼政の娘じゃきー、
なめたら、なめたらいかんぜよ!

220デフォルトの名無しさん:2005/10/15(土) 16:05:46
>>201は、わたしの「2ch名言語録集」に見事登録されました。
おめでとうございます。
221デフォルトの名無しさん:2005/10/15(土) 16:06:47
>>219
なんかスゲェですよ
222デフォルトの名無しさん:2005/10/15(土) 16:14:07
低脳スレにもありました。
そのコメントをコピペしなおしてあるところがまたイタイ

俺的にはこれ以来の阿呆発言でした(笑)
http://pc8.2ch.net/test/read.cgi/unix/1016025117/54-
22341:2005/10/18(火) 13:41:13
/proc/self/statm を scanf してみましたが、やっぱり処理速度が問題になってしまいました。
毎回オープンしても、オープンしたままで lseek() で巻き戻しても、
処理時間にあまり差がありませんでした。

Linux で自プロセスの現在の仮想メモリサイズ(または物理メモリ使用量)を取得する方法を
/proc ファイルを読む方法以外で知っている人がいたら教えてください。
224デフォルトの名無しさん:2005/10/18(火) 14:46:10
>>223
getrusage(2)
225デフォルトの名無しさん:2005/10/18(火) 22:39:35
free BSDで自分のログインもとのIPアドレスを出力するコマンドなり、プログラムなり
どなたか知らないでしょうか?
whoコマンド以外で
できればIPのみを出力する感じがいいです・・・
226デフォルトの名無しさん:2005/10/18(火) 22:55:06
何でログインしているの?
227すいません・・・:2005/10/18(火) 22:58:44
横レスすいません。聞きたいことがあるうですけど。
掲示板にかきこみできなくなっちゃいました。
ボブって奴らしいんですけど。ボブってなんですか?
228デフォルトの名無しさん:2005/10/18(火) 23:06:22
229すいません・・・:2005/10/18(火) 23:07:14
これなんですか?
230デフォルトの名無しさん:2005/10/19(水) 06:39:13
231224:2005/10/19(水) 10:18:24
>>93は馬鹿なので放置しる
232デフォルトの名無しさん:2005/10/23(日) 03:49:06
テンポラリディレクトリの位置を取得する方法を教えてください
233デフォルトの名無しさん:2005/10/23(日) 04:04:43
>>232
/tmp
じゃなくて?
234デフォルトの名無しさん:2005/10/23(日) 04:39:04
>>233
ちんぽディレクトリはWindowsならTEMPやらTMPといった環境変数に
書いてあるのが通例だけど、Linuxだとそういうのは無くていきなり
/tmpがちんぽだという暗黙の了解しかない。

>>232
環境変数を参照してTMPやTEMPがあればそちらを、なければ/tmpを
ちんぽディレクトリとすればいいよ。
235デフォルトの名無しさん:2005/10/23(日) 06:25:47
環境変数ならTMPやTEMPなんて使わない。普通はTMPDIR。
なければ/tmpで、shell scriptでは通常 ${TMPDIR:-/tmp} と書く。
236232:2005/10/23(日) 06:55:19
>>233-235
どうもありがとうございます。大変参考になりました。
237デフォルトの名無しさん:2005/10/23(日) 06:56:25
/tmp はリブートすると消える(覚悟しておく)
/var/tmp はリブートしても消えない*かもしれない*

環境変数TMPDIRがあればそっちを使うと親切、くらいだな。
でも結局OSによるので man hier しる
238デフォルトの名無しさん:2005/10/23(日) 10:50:50
>>232
あと、実際にテンポラリファイルを作るときには、
mktemp(3)はセキュリティ的な問題(race condition)があるから使うな。
代わりにmkstemp(3)を使うよろし。
239デフォルトの名無しさん:2005/10/23(日) 11:30:07
OSのリビジョンと設定によっては、/tmp直下は消えるがサブディレクトリ以下は消えなかったりもする。
240デフォルトの名無しさん:2005/10/23(日) 13:01:24
今unixの勉強してるんだけど、
『AAA BBB CCC DDD
 AAA BBB SSS DDD
AAA BBB CCC DDD』
ってファイルに対して
SSSが入っているやつ以外の最後にSSSを付け足す
とかってできんの?
241デフォルトの名無しさん:2005/10/23(日) 13:04:53
できる
242デフォルトの名無しさん:2005/10/23(日) 13:09:16
>>240
ed filename <<EOF
v/SSS/s/$/ SSS/
w
q
EOF
243デフォルトの名無しさん:2005/10/23(日) 13:31:04
perl -ape '{ next, if /SSS/; s/$/ XXX/; }' -i filename

UNIXというかperlだが…

244デフォルトの名無しさん:2005/10/23(日) 14:19:33
perlってすげーな。
UNIXはどうだか知らないけど
245デフォルトの名無しさん:2005/10/23(日) 16:14:36
sed -e '/SSS/s/$/ SSS/'
246デフォルトの名無しさん:2005/10/23(日) 17:18:04
ed/perl/sed ときたかw
残っているのはpythonとawkくらいかな
247デフォルトの名無しさん:2005/10/23(日) 17:34:02
>>245
条件逆やし、書き換えてないし。

$ sed -e '/SSS/n' -e 's/$/ SSS/' filename

で、条件は合う。けどこれ板違いじゃないか? プログラミングとは言いがたいし。
248デフォルトの名無しさん:2005/10/23(日) 19:19:00
ruby -pe '$_.sub!(/$/, " SSS") unless /SSS/'
249デフォルトの名無しさん:2005/10/23(日) 19:21:24
おまえらそれだと
AAA BBB XXXSSSXXX CCC DDD
みたいな行でダメじゃないか
250デフォルトの名無しさん:2005/10/23(日) 19:28:18
>>249
意味わかんねえ。何がダメ?

>>243の-aはなくていいが。
251デフォルトの名無しさん:2005/10/23(日) 19:30:09
単語境界認識しろってことか?
252デフォルトの名無しさん:2005/10/23(日) 19:33:52
ruby -ape '$_.sub!(/$/, " SSS") unless $F.include?("SSS")'
253デフォルトの名無しさん:2005/10/23(日) 19:35:42
perl -pe '{ foreach $i (@F) { next LINE, if $i =~ /^SSS$/; } s/$/ ZZZ/; }'

こういうことか?
254デフォルトの名無しさん:2005/10/23(日) 19:37:47
>>253
あ、-a忘れた。

perl -ape '{ foreach $i (@F) { next LINE, if $i =~ /^SSS$/; } s/$/ ZZZ/; }'
255デフォルトの名無しさん:2005/10/23(日) 20:08:44
awk '/\<SSS\>/ {print; next;} {printf("%s SSS\n", $0);next;}'
256デフォルトの名無しさん:2005/10/23(日) 21:09:50
>>255
後ろのnextはなくても大丈夫だね。

単語境界を使うとperlは、

perl -pe '{ next, if /\bSSS\b/; s/$/ XXX/; }'

だな。\bは行頭、行末も大丈夫。
257デフォルトの名無しさん:2005/10/24(月) 12:22:12
自分自身の現在のメモリ使用量を取得する方法を教えてください。
258デフォルトの名無しさん:2005/10/24(月) 12:37:50
もう何回目だよこの質問。
259デフォルトの名無しさん:2005/10/24(月) 13:58:39
getrusage
260デフォルトの名無しさん:2005/10/24(月) 19:34:48
自分の実行ファイルのパス名を知りたいんですが、
GetModuleFileNameと互換性のあるAPIありませんか?
261デフォルトの名無しさん:2005/10/24(月) 19:37:59
>>260
その関数の仕様は?
いきなり関数名だけ提示されてそれと互換性云々聞かれてもね。
262デフォルトの名無しさん:2005/10/24(月) 19:46:30
263デフォルトの名無しさん:2005/10/24(月) 21:10:39
264デフォルトの名無しさん:2005/10/25(火) 11:27:05
wchar_tを扱える正規表現ライブラリってありませんか?
鬼車はUcharみたいですし…
265デフォルトの名無しさん:2005/10/25(火) 11:43:30
>>261
ググれよ
266デフォルトの名無しさん:2005/10/25(火) 11:50:12
>>265>>264の間違い
267デフォルトの名無しさん:2005/10/25(火) 12:02:05
>>264
wchar_tは出来損ない
この型を使った時点で負け
268デフォルトの名無しさん:2005/10/25(火) 12:41:56
>>266
間違ってないよ
>>261は回答者の風上にも置けないやつだ
269デフォルトの名無しさん:2005/10/25(火) 12:46:35
キチガイが増えたねえ。

ここはUNIXのスレなんだから回答者にはそんな知識は期待されてない。
したがってそういうのは質問者がなるべく情報を提供して回答者の負担を
軽減するべきだし、そうすればこそ答えてもらえる可能性も高くなる。
270デフォルトの名無しさん:2005/10/25(火) 13:13:58
知らなきゃ黙ってりゃいいのに
271デフォルトの名無しさん:2005/10/25(火) 13:21:41
それが言えるのは問題の知識がUNIXの知識の場合。
そんな区別もつかずに逆ギレとは、キティはどうしようもないねえ。
272デフォルトの名無しさん:2005/10/25(火) 13:34:23
UNIX知識だけしか持ってないUNIXプログラマなんて
この世に不要だよ・・・
273デフォルトの名無しさん:2005/10/25(火) 13:39:43
ということにしたいのですね
274デフォルトの名無しさん:2005/10/25(火) 13:40:09
はいはい。指しゃぶってなさい。一番幼稚なパターンだったねえ。
275デフォルトの名無しさん:2005/10/25(火) 13:55:48
ファイルシステムでファイルにディスクスペースを割り当てる最小単位は
何バイトかを知りたいのですが、statfsしてf_bsizeを見ればいいのでしょうか?
276ヽ(´ー`)ノ ◆.ogCuANUcE :2005/10/25(火) 14:04:40
>>275
f_bsize はブロックサイズじゃー(゚Д゚)

man statfs しる。
277デフォルトの名無しさん:2005/10/25(火) 15:09:54
じゃあどれさ。f_bsizeが一番それっぽいんだけどさ。
278デフォルトの名無しさん:2005/10/25(火) 15:21:56
>>277
マニュアルぐらい見ろよ、カス。
279264:2005/10/25(火) 15:22:08
一応ググってはみたんですが見つけられなかったので…
結局wchar_tは使わないほうがいいってことなんですかね
280デフォルトの名無しさん:2005/10/25(火) 15:24:42
漏れも f_bsize かと思ったので事の成り行きに注目・・・
281デフォルトの名無しさん:2005/10/25(火) 15:31:40
まともに質問すらできなくて答えてもらえない池沼が
逆切れしてるなw
282デフォルトの名無しさん:2005/10/25(火) 15:42:08
マニュアル読めと言ってる奴だけがマニュアルを読んでない希ガス
283デフォルトの名無しさん:2005/10/25(火) 16:12:08
>>279
boost::regexは?C++ですが。
サロゲート使わなくていいんなら、wchar_tで問題ないとおもうけど。
284デフォルトの名無しさん:2005/10/25(火) 18:15:08
>>275
statfsがあるシステムではそれでも可(某Lの字だけ異端だが実際はほぼ無問題)。
ただしstatfsはPOSIXでは定義されていないので、
POSIXならstatvfsしてf_frsize。またはpathconf(path, _PC_ALLOC_SIZE_MIN)。

>>281
275の質問はまともだろ。質問がまともかどうかもわからないのでは、
自分でもろくな質問ができないのだろうな。かわいそうに。
285ヽ(´ー`)ノ ◆.ogCuANUcE :2005/10/25(火) 18:59:09
f_frsize だな。
286デフォルトの名無しさん:2005/10/25(火) 21:40:44
>>264
http://laurikari.net/tre/index.html
> TRE is a lightweight, robust, and efficient POSIX compliant regexp matching library with some exciting features such as approximate (fuzzy) matching.

287264:2005/10/25(火) 23:15:36
>>286
ありがとうございます
>>283
「Cのライブラリ」と書くのを忘れてました。すいませんでした。
携帯からで出来るだけ文章を短くしようとしていたとは言え
こんな重要なことを書き忘れた自分の無能さに鬱
288デフォルトの名無しさん:2005/10/26(水) 00:03:23
そもそも、任意の文字コード <-> wchar_t の変換が出来ないので(locale の
文字コードとは変換できるが)、wchar_t は使わない方が良い。
289デフォルトの名無しさん:2005/10/26(水) 00:07:57
>>285
Lの字しか知らんバカ
290デフォルトの名無しさん:2005/10/26(水) 04:48:08
>>288
> 任意の文字コード <-> wchar_t の変換

(゚Д゚)ハァ?

wchar_tて型ですが変換するんですかあ?


291デフォルトの名無しさん:2005/10/26(水) 15:00:19
292ヽ(´ー`)ノ ◆.ogCuANUcE :2005/10/26(水) 15:02:39
>>289, >>291
何か問題が?
struct statvfs の f_frsize は POSIX 互換だと思うけど。
293デフォルトの名無しさん:2005/10/26(水) 16:05:25
294デフォルトの名無しさん:2005/10/26(水) 18:27:20
>>292
はいはい。statvfsという答えが出てからそんなこと言ってもなー。
バカはLinux板で遊んでてね。
295デフォルトの名無しさん:2005/10/26(水) 18:33:36
>>294
> はいはい。statvfsという答えが出てからそんなこと言ってもなー。

変な人…
296デフォルトの名無しさん:2005/10/26(水) 18:36:51
意味不明の即レスするひととか変な人が増えてきたね。
297デフォルトの名無しさん:2005/10/26(水) 18:56:11
Lの字しか知らんバカと指摘されたのが悔しかったんでは
298デフォルトの名無しさん:2005/10/26(水) 19:03:57
ヽ(´ー`)ノ
299ヽ(´ー`)ノ ◆.ogCuANUcE :2005/10/26(水) 19:10:14
なんか荒れてきたから名無しに戻る(´Д`)
300デフォルトの名無しさん:2005/10/26(水) 19:16:39
自分で荒らし始めたくせに。変な人。
301デフォルトの名無しさん:2005/10/28(金) 00:53:46
302デフォルトの名無しさん:2005/10/29(土) 12:41:42
>>300
(゚Д゚)ポカーン
303デフォルトの名無しさん:2005/10/30(日) 08:44:42
このスレは異常な奴が多いな
304デフォルトの名無しさん:2005/10/30(日) 23:01:44
荒らして楽しんでいる狂った奴がいるようだから、
荒れてきたらスルーしとけ。
305デフォルトの名無しさん:2005/11/06(日) 14:28:19
おまいらUNIX板逝けよ
306デフォルトの名無しさん:2005/11/06(日) 15:29:53
>>305
禿同。
このスレといいajaxスレといい、明らかに板違いなくせに
ム板に居ついてる香具師が多すぎ。
307デフォルトの名無しさん:2005/11/06(日) 16:56:51
自演乙
308デフォルトの名無しさん:2005/11/07(月) 16:14:43
メールを送信する方法を教えてください
309デフォルトの名無しさん:2005/11/07(月) 16:18:46
sendmail
310デフォルトの名無しさん:2005/11/07(月) 16:36:06
$ telnet mail smtp

helo 2ch.net
250 OK
mail from:<[email protected]>
250 OK
rcpt to:<[email protected]>
250 OK
data
354 Enter mail body, end with '.'
Subject: test

This is a test.

by [email protected]
.
250 OK mail accepted.
quit
311デフォルトの名無しさん:2005/11/08(火) 05:37:32
>>310
それで添付ファイルを付ける方法を僕に教えて!
312デフォルトの名無しさん:2005/11/08(火) 05:50:08
>>311
OEのメッセージのプロパティ/ソースなどを見れ
313デフォルトの名無しさん:2005/11/08(火) 08:31:46
>>311
uuencodeして適当に放り込む。
314デフォルトの名無しさん:2005/11/08(火) 13:31:03
suse linux 9.0上でAMDのACMLをg++で使用しています。

#include <acml_mv_m128.h>

をインクルードしようとすると、

error: '__m128' does not name a type

というエラーが出てコンパイルできません。どのようにしたらよいのでしょうか?
315デフォルトの名無しさん:2005/11/08(火) 14:00:44
__m128を定義しているヘッダを探してinclude。
316デフォルトの名無しさん:2005/11/08(火) 22:07:15
>>314
スレ(板?)違いです。
Linux板のくだ質あたりが適切じゃないかと。
317デフォルトの名無しさん:2005/11/09(水) 00:06:37
>>315
ありがとうございます。
#include <xmmintrin.h>
を追加したら、エラーは出なくなりました。

ところが別の問題が出て、コンパイルすると

/tmp/ccZFaKu6.o: In function `main':
/tmp/ccZFaKu6.o(.text+0x11): undefined reference to `fastexp'
collect2: ld returned 1 exit status

というエラーが出てコンパイルできません。
コンパイルオプションには
g++ -m64 -I/opt/acml2.7.0/gnu64/include test.cpp -L/opt/acml2.7.0/gnu64/lib -lacml -lg2c -lacml_mv
を付けているのですが、他に何かオプションを付ける必要があるのでしょうか?



318デフォルトの名無しさん:2005/11/09(水) 00:58:36
おまえの脳に思考力強化オプションをつける必要があるな
319デフォルトの名無しさん:2005/11/09(水) 01:08:51
コンパイラやらリンカやらが文句を言うたびにここに書き込むのかw
320デフォルトの名無しさん:2005/11/09(水) 02:16:04
そう言わずに、教えてくだすれ
321デフォルトの名無しさん:2005/11/09(水) 04:43:01
コンパイルは出来てるじゃん
322デフォルトの名無しさん:2005/11/09(水) 13:03:12
リンクでした
323デフォルトの名無しさん:2005/11/09(水) 14:31:27
solarisでgcc動作させるまでえらい梃子摺った俺が来た
騙された、全くやる気のないbinutilsが居た
/usr/ucbは一体何?
324デフォルトの名無しさん:2005/11/09(水) 16:51:05
つwww.sunfreeware.com
325デフォルトの名無しさん:2005/11/10(木) 14:42:30
ゾンビプロセスをinitの子にしてずっと残らせる方法教えて下さい。
例えばこうゆうプログラムを作って実行します。

int main(void){
int pid;
pid = fork();
if(!pid){
printf("child dakedo owari!\n");
exit(0);
}
printf("parent ikinokori!\n");
sleep(10000);
printf("parent owari!\n");
exit(0);
}
するとsleep(10000)の間中以下のようにゾンビが出来ます。

# ps afx | grep a.out
21716 pts/1 S 0:00 | \_ ./a.out
21717 pts/1 Z 0:00 | \_ [a.out] <defunct>

ここで親(21716)をkill -KILLで終了します。すると子(21717)は残る
と思ったのですがきれいに終了してしまいます。
どうしたらゾンビを残すことが出来ますでしょうか?
326325:2005/11/10(木) 14:43:16
書き忘れました。linuxでやってます。
327デフォルトの名無しさん:2005/11/10(木) 15:53:42
なんのために?
328325:2005/11/10(木) 16:02:34
どういう場合に残るのか事前に知っておきたいのです。
329デフォルトの名無しさん:2005/11/10(木) 16:05:31
forkのあとsetsid() してみては?
330325:2005/11/10(木) 16:34:56
>>329
ありがとうございます。でも駄目でした…
331デフォルトの名無しさん:2005/11/10(木) 16:50:23
init にバグでも仕込まない限り無理やろ
>>325
forkしてwaitしてfork先でforkしてexitすれば最後のforkが生き残る
333デフォルトの名無しさん:2005/11/10(木) 17:07:28
こいつは親が死んだ後もゾンビを残したいって言ってんでしょ?
無理でしょ?
334デフォルトの名無しさん:2005/11/10(木) 17:28:32
う−ん、initにSIGSTOP送ってみるとか
>>333
>>332の方法で出来るお
(最後のforkの身元引受人がinitになる)

>>334
それをいうならSIGCHLDをSIG_IGN
(移植性なんて見えやしねー)
336デフォルトの名無しさん:2005/11/10(木) 18:11:03
>>332
exit をひとつ忘れてませんか?
337デフォルトの名無しさん:2005/11/10(木) 18:14:43
>>335
それってゾンビの他に生きたプロセスが残るんだよね?
だめじゃん。
残したいのはゾンビなのかーそりゃー無理だ・・・
・・・あ、できるかも
339デフォルトの名無しさん:2005/11/10(木) 18:28:09
ていうか・・・不毛だ。
340325:2005/11/10(木) 19:14:08
みなさんありがとうございます。
やっぱり無理なんですね…
ただ、不思議なのが、たまにこういうinitの子になってしまう
ゾンビプロセスって出来ることありますよね。
あれは何なんでしょう。
341デフォルトの名無しさん:2005/11/10(木) 19:18:42
initの子になった後でinitがそいつを処理する前の間。
いつまでもいるならそれはバグ。
342デフォルトの名無しさん:2005/11/11(金) 02:12:50
プロセスの質問に便乗しまつが、forkやexe〜関数を使うプログラミングを
マルチスレッドと呼んでいいのかな??
343デフォルトの名無しさん:2005/11/11(金) 02:13:49
マルチスレッドプログラミング?
344デフォルトの名無しさん:2005/11/11(金) 02:16:49
C言語主体のUNIXプログラミングとは、あんまり関係ないんでしょうかね?

オブジェクト指向で用いるものなのかな
345デフォルトの名無しさん:2005/11/11(金) 02:20:06
>>342
それはマルチプロセス。
マルチスレッドは単一のプロセス内で複数スレッドが動くものをそう呼ぶ。
346デフォルトの名無しさん:2005/11/11(金) 02:22:54
>>345さん
素早いレスありがとうございます。
私のUNIX_Cの教科書には、スレッドの説明が載ってないのです
347デフォルトの名無しさん:2005/11/11(金) 02:28:56
メモしておきます。有難うございました
348デフォルトの名無しさん:2005/11/11(金) 02:40:09
厨くさいスレだ
349デフォルトの名無しさん:2005/11/11(金) 02:43:02
350デフォルトの名無しさん:2005/11/11(金) 02:52:06
935 名前: デフォルトの名無しさん [sage] 投稿日: 2005/11/06(日) 15:25:10
このsageない基地外なんか過去から全部同じ椰子じゃないかとまで思ってしまう。
(ネタがつまらんのが致命的にキモイ)
351デフォルトの名無しさん:2005/11/11(金) 10:00:45
>>1
          ./    \
          .| ^   ^ |
          | .>ノ(、_, )ヽ、.| <あまり私を怒らせない方がいい
         __! ! -=ニ=- ノ!___
    /´ ̄ ̄ .|\`ニニ´/    `ヽ
   {      .|__  ̄ ̄ヾ      } 
   i;;',,,  r---イ     /|,、_,,  ,',;:',i
   .l;';',;,,  }  /;\     / ヽ / ,;,;;',;l
   .|;;',;,   } ./;;;,, \   / ;;;;;;ヽ ,,;;','i
   i;',,   / /;;,',';;  ノ--, ',',;;::',',゙i ,,';';i
   i;,';  /./,',',';;" /   \ ',',',;;,'i ,;',i
  /  / i 、  /    ヽ ',;::'、|  \
 ヽヽヽヾ丿  〈       ヽ''  {////
  ```` ト,   i        | 、 i´´´
      |',',;;  }        ! ',',;;i
      |,','、 /        ヽ',',','|
      !;;', /          !,',;,;'|
352デフォルトの名無しさん:2005/11/11(金) 12:00:07
ゾンビではなくキョンシーの作り方を教えてくらさい
353デフォルトの名無しさん:2005/11/11(金) 14:46:13
テンテンの画像が見られるサイトを教えてください
354デフォルトの名無しさん:2005/11/11(金) 16:47:17
355デフォルトの名無しさん:2005/11/11(金) 17:33:06
(;´Д`)ハァハァ
356デフォルトの名無しさん:2005/11/14(月) 19:15:20
エスケープシーケンスって誰のお仕事?
色とか誰が認識してるわけ?
357デフォルトの名無しさん:2005/11/14(月) 19:19:19
TeraTerm とかw
358デフォルトの名無しさん:2005/11/14(月) 19:29:24
あと、カーネル内のコンソールドライバとか、
kterm みたいな端末エミュレータとか。
359デフォルトの名無しさん:2005/11/14(月) 19:37:01
screenが喰っちゃうこともある。
360デフォルトの名無しさん:2005/11/14(月) 23:59:41
http://pc8.2ch.net/test/read.cgi/tech/1131282679/l50

237 :デフォルトの名無しさん :2005/11/14(月) 23:38:29
さあ話をそらしにかかりました
361デフォルトの名無しさん:2005/11/16(水) 19:44:11
初歩的な質問ですみません。Cで ftw(ファイルツリーウオーク)を利用して
指定DIR配下のファイル削除を行うプログラムを作成しています。
再帰的にファイルを探す処理まで出来ているのですが
肝心のファイルを削除する関数を知りませんでした。おしえてください。
362デフォルトの名無しさん:2005/11/16(水) 19:50:16
なんでUNIXのソケットプログラミングってのはforkを使って
子プロセスを生むんだい?スレッドではできないのかい?
363デフォルトの名無しさん:2005/11/16(水) 20:17:35
>>362
出来るよ。

fork() を使えば、スレッドに比べれば細かい事を考えなくていいから
サンプルプログラムなんかでよく使われてるだけだ。
364デフォルトの名無しさん:2005/11/16(水) 21:02:40
$./configure
$make
で、ビルドしたものは、デバッグ可能でしょうか?

gcc -g hoge.c

gccではなくmakeを使ってコンパイルしたものでは勝手はどう変わるのでしょうか?
365デフォルトの名無しさん:2005/11/16(水) 21:23:53
>>364
釣りは逝ってよし
366デフォルトの名無しさん:2005/11/16(水) 21:56:09
>>364
makefileに書いとけばいい
367デフォルトの名無しさん:2005/11/16(水) 23:17:54
361
これでうまくいったら教えてくれ
char *unko="a.txt"
system("rm "unko);
368デフォルトの名無しさん:2005/11/16(水) 23:44:29
>>361
remove(3)
unlink(2)
369デフォルトの名無しさん:2005/11/16(水) 23:44:49
>>362
あなたが無知だから知らないだけ。
370デフォルトの名無しさん:2005/11/17(木) 00:04:40
>>369
無知の知。良い言葉だよな。
371デフォルトの名無しさん:2005/11/17(木) 09:29:59
むちむち。良い言葉だよな。
372デフォルトの名無しさん:2005/11/17(木) 12:03:54
もちもち。のほうが好き
373デフォルトの名無しさん:2005/11/17(木) 19:07:24
C言語なのですが、そのプログラムを起動したユーザSIDを取得できる
ステートメントってありますでしょうか?
374デフォルトの名無しさん:2005/11/17(木) 20:05:36
ユーザSIDってなんだろう?
375デフォルトの名無しさん:2005/11/17(木) 20:22:05
ステートメントというと if とか while とかかな…たぶん無いんじゃない?
376デフォルトの名無しさん:2005/11/17(木) 23:39:01
>>374-375
さみしいな。矮小ども。
377デフォルトの名無しさん:2005/11/18(金) 00:04:19
で、ユーザSIDってなに?
378デフォルトの名無しさん:2005/11/18(金) 00:12:38
まさかこんな面白い質問しておいてsetuidがオチなんてことはないよね
379373:2005/11/18(金) 00:26:43
すみません正式にはなんていうかわからないんですが
UNIX(空)で シャットダウン前にwhoを叩いたときに表示されている
ユーザー名のようなIDです。
起動したユーザのIDを取得したいです
380373:2005/11/18(金) 00:27:58
セットユーザーIDでした
381デフォルトの名無しさん:2005/11/18(金) 00:59:47
SID = Security IDentifier
windowsがユーザーやグループを番号で管理するためのもの
unixのuidやgidの進化版、って認識であってる?
だからgetuid(2)とかかな
382デフォルトの名無しさん:2005/11/18(金) 01:45:04
session id しか思い浮かばなかった。
383デフォルトの名無しさん:2005/11/18(金) 05:31:44
>>379
> ユーザー名のようなIDです。

「のような」て…
プログラミング向いてないんじゃないの?
384デフォルトの名無しさん:2005/11/18(金) 10:48:14
でもそのアバウトさはプログラマ向き
385デフォルトの名無しさん:2005/11/18(金) 16:14:54
むしろLisperの思考だな「〜のようなもの」
386デフォルトの名無しさん:2005/11/18(金) 21:16:02
型推論するから平気です
387デフォルトの名無しさん:2005/11/18(金) 21:32:30
noyounamonoはよく使います
388デフォルトの名無しさん:2005/11/19(土) 03:50:25
utmpって誰が更新してるの?
389デフォルトの名無しさん:2005/11/19(土) 05:40:21
>>388
telnetdとかsshdとかxtermとかいろいろ。
390デフォルトの名無しさん:2005/11/19(土) 09:16:34
他にはsessreg(1)とか
391デフォルトの名無しさん:2005/11/30(水) 09:22:12
           ___
          ./    \
          .| ^   ^ | <あまり私を怒らせない方がいい
         _| .>ノ(、_, )ヽ、.|___
    /´ ̄ ̄_! ! -=ニ=- ノ!   `ヽ
   i;;',,,  r--- .|\`ニニ´/ヾ_,,  ,',;:',i
   .|;;',;,   } ./イ      /|;;;;ヽ ,,,'i
   i;,';  /./,',',';;;,,\ _  / ',',',;;,'i ,;',i 
  /  / i 、 ;;" /   \  ',;:'、|  \
 ヽヽヽヾ丿   /     ヽ''  {////
  ```` ト,   i       | 、 i
392デフォルトの名無しさん:2005/12/02(金) 22:26:43
わかった
この流れは


























終了
393デフォルトの名無しさん:2005/12/02(金) 23:23:48
ということにしたいのですねw
394デフォルトの名無しさん:2005/12/04(日) 14:04:51
は?それがなにか?
395デフォルトの名無しさん:2005/12/04(日) 14:15:09
ここもツンデレだらけだなw
396デフォルトの名無しさん:2005/12/04(日) 15:16:22
盛り上げようと一生懸命なのはわかるが、他に方法がないのかよ
397デフォルトの名無しさん:2005/12/04(日) 16:54:43
UNIXはもうだめかもわからんね
398デフォルトの名無しさん:2005/12/04(日) 23:51:10
はあ?
399デフォルトの名無しさん:2005/12/05(月) 00:15:53
Windowsにシェア奪われまくりだったな
400デフォルトの名無しさん:2005/12/05(月) 00:29:33
出張ご苦労だが、UNIXプログラミングのスレなんだよねえ
401デフォルトの名無しさん:2005/12/05(月) 00:44:48
WindowsサーバがLinuxサーバを抜いて出荷首位になりました
UNIXサーバにいたっては年々減少しています
402デフォルトの名無しさん:2005/12/05(月) 00:47:03
そろそろ巣に戻れ
403デフォルトの名無しさん:2005/12/05(月) 00:47:17
短期的にスレの流れを変えたのは>>398だぞ
荒らす意図がなくてやってるなら以後控えてくれ
404デフォルトの名無しさん:2005/12/05(月) 01:03:02
やれやれ
405デフォルトの名無しさん:2005/12/05(月) 01:04:17
ほらそうやって荒らす
そろそろ勘弁してくれ
406デフォルトの名無しさん:2005/12/05(月) 01:07:00
>>403
お前何秒でレスしてるんだよw
407デフォルトの名無しさん:2005/12/05(月) 04:48:12
UNIXはもうだめかもわからんね
408デフォルトの名無しさん:2005/12/05(月) 06:20:44
僕の肛門もそろそろだめそうです
409デフォルトの名無しさん:2005/12/05(月) 08:10:47
毛を剃って清潔にしておくように
410デフォルトの名無しさん:2005/12/08(木) 13:54:46
      / ̄ ̄ ̄ ̄ ̄ ̄\
    /             \
   /                  ヽ  
    l:::::::::.                  |  
    |::::::::::   (●)     (●)   |
   |:::::::::::::::::   \___/     |   
    ヽ:::::::::::::::::::.  \/     ノ 
     \           /    ♪
      /         ::::i \
     /  /       ::::|_/
     \/          ::|
        |        ::::|  キュム
        i     \ ::::/ キュム
        \     |::/
          |\_//
          \_/
411デフォルトの名無しさん:2005/12/08(木) 14:00:11
キチガイは巣に返れ
412デフォルトの名無しさん:2005/12/08(木) 14:00:36
タダイマー
413デフォルトの名無しさん:2005/12/08(木) 14:00:54
ここがキチガイの巣です。
414デフォルトの名無しさん:2005/12/08(木) 14:08:23
お前が荒してるだけじゃねえか
415デフォルトの名無しさん:2005/12/08(木) 14:10:01
>>412-413
キチガイさんに用はないですよ
416デフォルトの名無しさん:2005/12/08(木) 21:00:40
最近の貧乏人は皆こぞってjavaを選択してしまうことがunix_Cプログラミング衰退の原因

417デフォルトの名無しさん:2005/12/08(木) 21:39:30
頭が固くなりすぎて新しい言語を学ぶこともできないジジイ乙
418デフォルトの名無しさん:2005/12/08(木) 21:44:03
使い分けすら考えないとはアホだな
419デフォルトの名無しさん:2005/12/08(木) 22:27:45
>>417
>>418
いや、今は新しくSTL勉強してる訳だが?
420デフォルトの名無しさん:2005/12/08(木) 22:30:42
UNIX はもうだめかもわからんね
421デフォルトの名無しさん:2005/12/08(木) 22:53:43
>>420
お前まだいたのかよ
422デフォルトの名無しさん:2005/12/09(金) 01:10:42
自分自身の現在のメモリ使用量を取得する方法を教えてください。
423デフォルトの名無しさん:2005/12/09(金) 02:07:34
OS依存です
また、あなたの言う「メモリ使用量」の意味を明確に
定義しないことには方法を提示できません
424デフォルトの名無しさん:2005/12/09(金) 09:04:31
getrusage(2)
425デフォルトの名無しさん:2005/12/10(土) 12:50:07
自分のプログラムの実行パスを得たいのですがよろしく。
426デフォルトの名無しさん:2005/12/10(土) 12:56:13
Windows使え。
427デフォルトの名無しさん:2005/12/10(土) 14:41:21
>>425
> 自分のプログラムの実行パスを得たいのですがよろしく。

環境依存。ここに少しだけ載っている。
http://shinh.skr.jp/binary/b2con.html

抜粋すると:
Linux :
 readlink("/proc/self/exe")
MacOSX:
 _dyld_get_image_name
Win32 :
 HMODULE h = LoadLibrary(NULL);
 GetModuleFileName(h, buf, 1024);
428デフォルトの名無しさん:2005/12/10(土) 22:29:21
Solaris:
/proc/プロセス番号/psinfo を sys/procfs.h にしたがって読む。
429デフォルトの名無しさん:2005/12/11(日) 20:26:17
>388 と同じ事で気になって
>389-390 のご回答で納得なんですが
これって機構を用意しただけで
使うかどうかは特に決められてないもんなの?
430デフォルトの名無しさん:2005/12/11(日) 21:00:38
はい
431デフォルトの名無しさん:2005/12/15(木) 13:17:28
環境はRHLinuxなんですがPOSIXってのに準拠してれば
UNIXもLinuxも同じと聞いたので教えてください。
ちなみにUNIX系のプログラムはずぶの素人です。

Dual構成のマシンを使い、あるスレッドを指定のCPUでのみ
動作させたいと思ってます。
Win32(VC++)だと「SetThreadAffinityMask()」と言う関数で
提供されているのですが、UNIX(orLinux)では同様の処理は
ありますか?あれば教えて頂きたいのですが。

また参考サイトなんか教えて頂けると幸せです。
宜しくお願いしまふ。
432デフォルトの名無しさん:2005/12/15(木) 14:27:12
sched_setaffinity

お薦めサイトはグーグル
433431:2005/12/15(木) 14:49:21
thx!!ありがとうございます。
感謝感激雨あられです。m(__)m
確かにgoogle最強ですね。
助かりました。
434デフォルトの名無しさん:2005/12/15(木) 21:56:48
UNIXはドキュメントがほとんど存在しないから名前知ってないと全くわからないね
死ねよ
435774ワット発電中さん:2005/12/15(木) 22:37:17
>>434
英語で検索すれば結構引っかかるよ
436デフォルトの名無しさん:2005/12/16(金) 00:13:18
確かに日本語のドキュメントは少ないな
英語のできない中卒にはつらいか・・・
とはいえ、Windowsプログラマでも技術英語読めないんじゃ底辺だよなw
437デフォルトの名無しさん:2005/12/16(金) 00:15:12
ドキュメントっつっても結構砕けた英語多いしな
438デフォルトの名無しさん:2005/12/16(金) 00:26:22
ていうか、ある程度長くやってりゃ中卒だろうがなんだろうが
ドキュメント読むくらいのことは自然となんとかなるようになってこね?
439デフォルトの名無しさん:2005/12/16(金) 00:44:44
>>434
googleで、キーワード site:linux.or.jp あるいは site:jp.freebsd.orgで検索するとか、
docs.sun.comで検索するとか。
440デフォルトの名無しさん:2005/12/16(金) 00:51:37
解決できる人はメモを残さないし
解決できない人は疑問しか書き残さない

だから 行き詰ると どの国の言葉でも
出来ないわからない しか検索に引っかからない

ドイツ人は自己解決しても結構まめに回答まで書き残すんだよな
441デフォルトの名無しさん:2005/12/16(金) 00:56:44
んなことないよ
442デフォルトの名無しさん:2005/12/16(金) 01:03:14
>>441
ごめん
フランス人も結構残してた
443デフォルトの名無しさん:2005/12/16(金) 17:49:12
C言語のプログラムで、2、3GBほどのファイルをfopenなどの
関数で操作するにはどうすればいいですか?

開こうとすると
Can't open : hogehoge
って言われます。

よろしくお願いします。
444デフォルトの名無しさん:2005/12/16(金) 18:07:29
OS書いた方がいいよ
445デフォルトの名無しさん:2005/12/16(金) 18:16:27
>>443
LargeFile
で検索しなさい
446デフォルトの名無しさん:2005/12/16(金) 18:20:49
すごいエラーメッセージ出すOSだなw
447デフォルトの名無しさん:2005/12/16(金) 21:23:11
>>443
でかいファイルだからってfopen()で失敗するなんてことはない。
448デフォルトの名無しさん:2005/12/17(土) 23:01:31
>>447
Tru64 や *BSD なら確かにその通りだが、それ以外の UNIX や
Linux だと、エラーコード EFBIG で fopen() が失敗する。
対処方法は
ttp://www.unix.org/version2/whatsnew/lfs20mar.html
にある。
449デフォルトの名無しさん:2005/12/19(月) 13:08:02
a.outに関する質問です。

user> ./a.out < a000001.txt > result.txt

で結果をtxt化しているのですが、a000001.txtをa100000.txtまで処理させて
一個一個の結果をresult.txtに足していきたいのです。
どのようにしたら良いのでしょうか?
(初心者なのでお手数おかけします)

ちなみにresult.txtの中身は

1 0 3
2 4 3
3 7 7
4 8 3
5 8 1
6 2 8
7 0 4
8 2 3

となっています。一列目は固定で、順に足していきたいのは2列目と3列目です。


450デフォルトの名無しさん:2005/12/19(月) 13:18:55
>>449
$ ./a.out < a000001.txt
がresult.txtの二列目
$ ./a.out < a000002.txt
が三列目ってこと?

>a.outに関する質問です。
「a.outに関する質問」か?
451449:2005/12/19(月) 13:31:57
>>450
レスありがとうございます。

a000001.txtは一列目から三列目まで出力されます。
同様にa000002.txtにも一列目から三列目まで出力されます。
10万ある各ファイルの二列目と三列目だけを足していきたいのです。

a.outに関する質問じゃなかったですか(^^;;
452デフォルトの名無しさん:2005/12/19(月) 14:26:20
板違いじゃないの
453デフォルトの名無しさん:2005/12/19(月) 14:31:57
>>452
シェルプログラミングだと思えばいいよ

>>451
./a.out <$f |head -n 2|tail -n 2 >> result.txt

1〜100000は自力でがんばれ
454デフォルトの名無しさん:2005/12/19(月) 14:43:09
>>453
そのheadとtailは意味あるの?
というか列と行間違えてない?
455デフォルトの名無しさん:2005/12/19(月) 14:56:47
要件が曖昧でわからん
456デフォルトの名無しさん:2005/12/19(月) 15:18:20
どっちにしろ「UNIXプログラミング」じゃないからスレ違い。
457449:2005/12/19(月) 15:20:05
要件を詳しく書きます。

a000001.txtは以下のように出力されたとします。

1 0 3
2 4 3
3 7 7
4 8 3
5 8 1
6 2 8
7 0 4
8 2 3

a000002.txtも以下のように出力されたとします。

1 0 3
2 2 6
3 4 7
4 6 3
5 2 2
6 6 9
7 1 1
8 1 2

458デフォルトの名無しさん:2005/12/19(月) 15:20:35
これが10万まで続くのですが、結果の2列目と3列目を足していきたのです。

1 0  6
2 6  9
3 11  14
4 14  6
5 10  3
6 8  17
7 1  5
8 3  5
459449:2005/12/19(月) 15:40:33
板違いのようなのでシェルスクリプトスレにいってきます。
ご迷惑おかけしました。
460デフォルトの名無しさん:2005/12/19(月) 16:46:45
10まんこもあるとシェルスクリプトはどうかと思う
Cでつくれば?こんなの初心者だって出来るでしょ
461デフォルトの名無しさん:2005/12/19(月) 16:49:23
何故C
462デフォルトの名無しさん:2005/12/19(月) 17:09:06
なんでCになるんだ?
463デフォルトの名無しさん:2005/12/19(月) 17:36:23
perlなら30秒で瞬殺だろ。
実行は2分くらいかかるかもな。
464デフォルトの名無しさん:2005/12/19(月) 17:37:36
なぜシェルスクリプトじゃだめなのでしょうか
465デフォルトの名無しさん:2005/12/19(月) 21:07:48
UNIXといえばCでしょ
PerlでもCでもコーディング量はそんなに変わらん気がする

main() {
 int loop, i, n, m;
 char fn[100];
 static long a[9], b[9];
 FILE *fp;

 for(loop=0; loop<100000; loop++) {
   sprintf(fn, "a%06d.txt", loop);
   fp = fopen(fn,"r");
   while(fscanf(fp, "%d %d %d", &i, &n, &m) == 3)
      a[i]+=n;
      b[i]+=m;
   }
   fclose(fp);
 }

 for(i=1; i<=8; i++)
   printf("%d %d %d\n", i, a[i], b[i]);
}
466デフォルトの名無しさん:2005/12/19(月) 21:11:19
KISS
467デフォルトの名無しさん:2005/12/19(月) 21:31:17
ふつー awk
468デフォルトの名無しさん:2005/12/19(月) 21:40:05
awkは書かねぇ一行たりとも
469デフォルトの名無しさん:2005/12/19(月) 21:40:57
>>467
だよな
470449:2005/12/19(月) 21:54:39
皆様、レス本当にありがとうございます。
説明足らずで皆様に混乱を招きました。(特に>>465さんすいません)

a000001.txt(a000001.txtも同様)を自作のプログラムで処理すると、数字が三列ある結果を出力します。
ここで問題となっているのが、私が作ったプログラムでは

while(fgets(str,500,stdin) != NULL){
sscanf (str,"%s %s %s %s %s %s",a,b,c,d,e,f,);

でファイルを読み込ませているので、./a.outした時に一つのファイルしか処理できません。
10万回もa.outは物理的に無理なので、一度に10万個のファイルを読み込んで各一ファイルごとに
処理した結果の2列目と3列目を足していきたいのです。

C言語では無理でしょうか?
471449:2005/12/19(月) 21:56:26
gccでコンパイルした後は

user > ./a.out < a000000.txt > result.txt

で実行しています。(result.txtに数字が3列ある結果が入っています)
472デフォルトの名無しさん:2005/12/19(月) 22:08:57
fopen(3)しろ、ボケ
473デフォルトの名無しさん:2005/12/19(月) 22:18:06
なぜ>>465のお手本を活かさないんだろう
474デフォルトの名無しさん:2005/12/19(月) 22:20:21
なぜ10万回もa.outは物理的に無理なんだろう
475デフォルトの名無しさん:2005/12/19(月) 23:45:10
cat a*.txt | ./a.out
でいいんじゃないのか?
476449:2005/12/20(火) 00:04:35
ご迷惑をおかけしている449です。

皆さんのおかげで無事解決出来ました。
スレ違いもいいとこですが、それにも関わらず丁寧にアドバイスを頂き
本当にありがとうございました。


>>475さん
その方法は前に試していたのですが、Argument list too longと出て
実行できなかったんですよ。
477デフォルトの名無しさん:2005/12/20(火) 00:20:21
一番中身の無い言葉だよな。「無事解決出来ました」ってのが。
478デフォルトの名無しさん:2005/12/20(火) 07:31:32
自作のプログラムだってんだからa.outの方を改造せよっつーのが
このスレ的な回答だと思うんだけど…
479デフォルトの名無しさん:2005/12/20(火) 09:57:25
>>478
1.なんでもかんでもフィルタで解決する
というUNIX的プログラミング精神に反するからだろ
ソースの改造は2番目
480デフォルトの名無しさん:2005/12/20(火) 11:54:07
小さく単純に
481431:2005/12/22(木) 13:55:24
>>431でsched_setaffinity()の件を書き込みした者です。
早速使ってみたのですが動作しました。(プロセス単位で。)
ですが最終的にはスレッド単位でCPUの動作を割り振りしたいのです。

ttp://www.linux.or.jp/JM/html/LDP_man-pages/man2/sched_setaffinity.2.html

↑のサイトの「注意」項目で、「各スレッド単位に独立して調整することが
できる。」とあるので、pthread_create()で作成されるスレッド内で、
setaffinity()を行ったのですがCPUの割り振りをしてくれません。
(設定してもいつも同じ方のCPUの負荷が上がってる。エラーは無し。)

またそれ以前の話かも知れませんが、プロセスIDは妥当な値を取得出来る
のですが、createの際のthreadIDが「-1215315313」等と言ったアドレス
っぽい値を取得します。pthread_tってINTの別名じゃないんでしょうか?
setaffinity()の第一引数のpidはスレッドIDでも良いみたいなので、
渡す事が出来れば動くのかな?と思っているのですが・・・。

素人なりにやっているのですが相当苦労してます。orz。
(viも超〜基本しか使えない程度です。)くだらない質問で
申し訳ありませんが、どなたか回答頂けるとうれしいです。
ちなみにOSはRedHatからFedora4に変えました(別に違いありませんよね?)
宜しくお願いしますm(__)m
482431:2005/12/22(木) 14:19:40
すいません。ageで。
483デフォルトの名無しさん:2005/12/22(木) 18:31:56
> pthread_tってINTの別名じゃないんでしょうか?

ちがいます。

つーか gettid(2) 使えって書いてあるじゃん。
484デフォルトの名無しさん:2005/12/25(日) 00:27:31
すいません。標準出力とforkについてわからないので教えて下さい。
(m。_。)m オネガイシマスコンパイルと実行環境はcygwin+GCCです。

main()
{
printf("hoge1");
printf("hoge1\n");

if(fork()){/*親プロセス*/
printf("hoge2");
printf("hoge2\n");
}
else{/*子プロセス*/
printf("hoge3");←出力されてない
printf("hoge3\n");
}
}

実行結果:
hoge1hoge1
hoge2hoge2
hoge3
となってしまいます。
子プロセスで改行なしの標準出力がされません。なぜでしょうか?
調べてみると改行があると出力されるようなのですが・・・
また回避策もお願い致します。
(子プロセスの標準出力を親プロセスとのパイプにつなぐとか・・・)
どうか御教授の方宜しくお願い致します。
485デフォルトの名無しさん:2005/12/25(日) 00:33:48
>>484
微妙に親が早く死ぬんじゃね?

でも、うちだとちゃんと出力されたお。
486デフォルトの名無しさん:2005/12/25(日) 00:37:25
>>485
えぇ〜まじっすか?
487デフォルトの名無しさん:2005/12/25(日) 00:41:59
>>484
printf("hoge")をすべてfprintf(stderr, "hoge")に変えてみるとか
子プロセスの終了をwaitで待つとか

いろいろやってみ
488デフォルトの名無しさん:2005/12/25(日) 00:47:44
>>484
うちのlinuxだとちゃんと出力されるからわからんが、改行無しでprintfする場合、直後に
fflush(stdout);
を加えてみたら。
489デフォルトの名無しさん:2005/12/25(日) 00:52:39
>>484
cygwin でやってみたけど、全部出た。
490デフォルトの名無しさん:2005/12/25(日) 01:01:26
>>487
>>488
ありがとうございます。やってみます。
491デフォルトの名無しさん:2005/12/25(日) 11:54:25
うちのcygwinでも全部出たけど、デフォルトのプロンプトだと
欠けることがあった。プロンプトにESCシーケンス使ってると、
変になるかもね。(つーか、waitしろよ)

$ ./a.exe
hoge1hoge1
hoge2hoge2

foo@bar ~/srcoge3hoge3
492デフォルトの名無しさん:2005/12/25(日) 12:13:44
>つーか、waitしろよ
同意w
493デフォルトの名無しさん:2005/12/25(日) 13:18:46
>改行無しでprintfする場合、直後に
>fflush(stdout);
>を加えてみたら。
同意w
494デフォルトの名無しさん:2005/12/25(日) 15:43:10
すぐ後に改行出してんだからflushするしないは関係ないし、
waitするしないも関係ないだろ。
495デフォルトの名無しさん:2005/12/25(日) 16:07:26
waitしないと確実なことはできないじゃない?
この場合は親子そろって普通に終了してるのも問題かもね。
_exit()
496デフォルトの名無しさん:2005/12/25(日) 16:24:28
順序を制御しようとしてるわけじゃないんだからどっちがいつ終わろうが関係ないんじゃね?
497デフォルトの名無しさん:2005/12/25(日) 18:41:15
つーか、コードが悪すぎ
498デフォルトの名無しさん:2005/12/25(日) 19:26:12
丁度forkとプロセスの話が出ているので便乗質問。

パイプを使って対話型のプログラムを親プロセスから
操作したいと思ってテストプログラムを作ったのですが
うまくいきません。

子供はfgetsでループして取ってきた文字列をstdoutに出力
するという単純なプログラムです。親はforkして以下の図の
ようになるようにpipe処理をした後、適当な文字列をwrite
して直後にreadしています。

+------+ +------+
|親  |---(stdin)-->|子  |
|   |<--(stdout)--|   |
+------+ +------+

最終的な理想は、親が子にさまざまなコマンドを発行して
操作し、結果を取得するということをアプリケーションが
終わるまで行うことです。

テストプログラムではreadした瞬間止まってしまっているようなの
ですが双方向パイプでコマンドと対話するのはなにかコツの
ようなものが必要なのでしょうか?。

テストで作った子(メッセージ欄に貼り付け)と親プログラム(添付txt)
のソースは以下のURIにあります。

ttp://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/joyful.cgi?mode=thr&no=1344

499デフォルトの名無しさん:2005/12/25(日) 19:52:33
超高速ソートを考えてついたのですが。すでにありますかね?
その名もハッシュソート。
だいたいどんなのかわかりますよね?
ありますか。
500デフォルトの名無しさん:2005/12/25(日) 19:57:30
>>499
いわゆるBucket sortのことか?
501デフォルトの名無しさん:2005/12/25(日) 20:01:18
>>500
それです!すでにありましたか。
502デフォルトの名無しさん:2005/12/25(日) 20:03:35
ハッシュを使えば、メモリと計算量のトレードオフを調整できるな。
503デフォルトの名無しさん:2005/12/25(日) 20:03:55
>>498
親が送る文字列、'\0'つけたらダメなんじゃね?
504499:2005/12/25(日) 20:09:13
データ数をnだとして
配列をその5倍くらいとっておいて
データを数字1〜5nに分布させるような関数を
用意すれば6n位のオーダでソート出来ます。

あんまり配列が小さいと頻繁に衝突して効率が悪くなります。

505デフォルトの名無しさん:2005/12/25(日) 20:11:31
データ特性によって、うまkハッシュ関数を切り替えていければ面白いかもしれない。
506499:2005/12/25(日) 20:24:57
5000万行以上のテキストを並び替えたいのですがソートを一日中やってても終わりません。
どなたかプログラム出来る方、ハッシュソートを作ってもらえませんでしょうか?
これなら数十分だと思うのですが。
507デフォルトの名無しさん:2005/12/25(日) 20:31:37
何ソートつかってんのよ。
508デフォルトの名無しさん:2005/12/25(日) 20:35:07
>>507
sortじゃね?
509499:2005/12/25(日) 20:41:04
>>507
これと
http://www.vector.co.jp/soft/dos/util/se007577.html
これなんですが
http://park15.wakwak.com/~yu-ki/help/sota2/index.htm

いろいろ試して速いのはこの二つでした。アルゴリズムはわかりません。
510デフォルトの名無しさん:2005/12/25(日) 20:45:15
1万行ずつわけてソートして、あとでマージすればよくね?
511デフォルトの名無しさん:2005/12/25(日) 20:45:39
>>509
なんで MS-DOS/Windows 用なんだよ
512499:2005/12/25(日) 20:47:51
>>511
いまWindows XPを使っています。
513デフォルトの名無しさん:2005/12/25(日) 20:50:04
スレタイ良く見ろ
514デフォルトの名無しさん:2005/12/25(日) 20:50:36
>>512
すれ違い
515499:2005/12/25(日) 20:55:45
C言語なら関係ないんじゃないんじゃないですか
516デフォルトの名無しさん:2005/12/25(日) 21:00:05
517デフォルトの名無しさん:2005/12/25(日) 21:01:48
>>498
子はstdinがパイプなので行バッファリングではなく完全バッファリングするためfgetsでブロック。
親は子から入力がこないのでreadでブロック。
というデッドロック。
そういうときは疑似端末を使うらしい。
518499:2005/12/25(日) 21:02:18
>>516
どうもです
519デフォルトの名無しさん:2005/12/25(日) 21:07:14
>>517
> 子はstdinがパイプなので行バッファリングではなく完全バッファリングするためfgetsでブロック。

ここがまちがい。
520デフォルトの名無しさん:2005/12/25(日) 23:03:07
質問です。

あるプログラムで、mallocを数千回連続で実行すると
mallocがセグメンテーションエラーになります。
これを回避する方法ってありますでしょうか?

printf("before\n");
hoge = (struct hoge *)malloc(sizeof(struct hoge));
printf("after\n");

$ ./a.out
before
after
before
after
before
after
before
Segmentation fault
521デフォルトの名無しさん:2005/12/25(日) 23:05:01
> fflush(NULL);
これは何?何でfflush(stdout)じゃないの?
522デフォルトの名無しさん:2005/12/25(日) 23:11:15
>>498
親の、
  read(out[R], buf, BUFSIZ);
は、BUFSIZ書かれるまで帰ってこない
親もfgetsすればいいんじゃないの?
523デフォルトの名無しさん:2005/12/25(日) 23:13:52
>>520
環境がうんこ
てか環境かけよ
524デフォルトの名無しさん:2005/12/25(日) 23:20:24
>>522
>  read(out[R], buf, BUFSIZ);
> は、BUFSIZ書かれるまで帰ってこない

これもまちがい。

つか >>503 に正解が書いてあるのに。
525デフォルトの名無しさん:2005/12/25(日) 23:24:30
>>523
失礼しました。

環境は次の通りです。
ハード:P3-800MHz MEM:384MB
OS:Debian serge kernel 2.6 i686 GNU/Linux
コンパイラ:gcc-3.3.5

526デフォルトの名無しさん:2005/12/25(日) 23:26:45
>>525
struct hogeの具体的なサイズと実行してるシェルの
ulimit -aの出力を書いてください
527デフォルトの名無しさん:2005/12/25(日) 23:34:12
>>524
いやまぁ503も間違いだから全部まちがいだな
528デフォルトの名無しさん:2005/12/25(日) 23:35:23
>>520 >>525
その環境なら書き込んだ瞬間に実際のメモリの確保が行なわれるので、
Segmentation fault が起きるなんてありえないと思うんだが。

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

struct hoge {
char s[INT_MAX];
};

int main()
{
int i;
struct hoge * tmp = NULL;

for (i = 0 ; i < 100000000 ; ++i) {
tmp = (struct hoge *)malloc(sizeof(struct hoge));
}

return 0;
}

まずこれは問題なし。tmp に書き込んでないから。
529デフォルトの名無しさん:2005/12/25(日) 23:36:43
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

struct hoge {
char s[INT_MAX];
};

int main()
{
int i;
struct hoge * tmp = NULL;

for (i = 0 ; i < 100000000 ; ++i) {
tmp = (struct hoge *)malloc(sizeof(struct hoge));
tmp->s[0] = '\0';
}

return 0;
}

これは Segmentation fault。
メモリが確保出来なくなった時点で malloc が NULL を返すので、
そこに書き込んだ瞬間にアウト。
530デフォルトの名無しさん:2005/12/25(日) 23:37:51
#include <stdio.h>
#include <stdlib.h>
#include <limits.h>

struct hoge {
char s[INT_MAX];
};

int main()
{
int i;
struct hoge * tmp = NULL;

for (i = 0 ; i < 100000000 ; ++i) {
tmp = (struct hoge *)malloc(sizeof(struct hoge));
if (tmp) {
tmp->s[0] = '\0';
}
}

return 0;
}
これは malloc が NULL を返すが、if で対応してるので問題ない。

結論から言うと、メモリが確保できなかった場合のエラー処理を
適切に行いなさいってこった。
531デフォルトの名無しさん:2005/12/25(日) 23:49:06
>>529
ぬるぽ
532497:2005/12/26(月) 00:22:25
>> 503
・・・ああ!確かにそのとおりです。
で、strlen(msg) + 1の+1を削除してみたところうまく行きました。
ただクライアントでfflushをしてやらないと止まってしまうようですが・・・。

もうちょっと調査をしてみます。

>> 517
アドバイスありがとうございます。擬似端末についても調べてみます。

>> 522
fdopenでFILE*に変換できるのでしたっけ。こちらも試してみます。

>> 519
>> 524
>> 527
すいません、知識不足でどこが問題なのかわかっていません。
もうちょっと勉強してみます。

# あまりパイプに関する資料が見つからなくて困っているのです…
533532=498:2005/12/26(月) 00:23:42
すいません、間違って497さんを騙ってしまいました。
前の書き込みは498です…。
534デフォルトの名無しさん:2005/12/26(月) 00:45:54
>>526
core file size (blocks, -c) 0
data seg size (kbytes, -d) unlimited
file size (blocks, -f) unlimited
max locked memory (kbytes, -l) unlimited
max memory size (kbytes, -m) unlimited
open files (-n) 1024
pipe size (512 bytes, -p) 8
stack size (kbytes, -s) 8192
cpu time (seconds, -t) unlimited
max user processes (-u) unlimited
virtual memory (kbytes, -v) unlimited

>>528-530
場合分けによる提示ありがとうございます。
しかし、今回は、malloc自体がセグメンテーションエラーになっているようなのです。
こんな事ってあるのでしょうか?

struct hoge *hoge;
printf("before\n");
hoge = (struct hoge *)malloc(sizeof(struct hoge));
printf("after\n");
if (!hoge) exit(1);

$ ./a.out
before
after
before
Segmentation fault
535525:2005/12/26(月) 00:53:45
>>526
具体的なstruct hoge のサイズは次の通りです。
struct hoge {
struct hoge *next;
unsigned int fuga;
struct foo *foo;
}

struct foo {
struct foo *next;
unsigned int *bar;
}
536デフォルトの名無しさん:2005/12/26(月) 01:09:10
>>534
gdbで見てみたら?
537デフォルトの名無しさん:2005/12/26(月) 01:12:12
mallocの中でSEGVするのはかなりの確率でヒープの管理
領域が既に壊れている場合。malloc以外の場所にバグが
あってそれが偶然mallocの中で発言したってことが多い。

なんだかんだ言って、本当にmallocだけのプログラムでは
試してないでしょう? 再現する最小限のプログラムまで
落とし込むことを勧める。
538デフォルトの名無しさん:2005/12/26(月) 01:15:56
よくあるのは
-あんたのプログラムにバグがあってメモリを壊している
-不正なポインタに対してfree()を呼んだ
のどちらか
539デフォルトの名無しさん:2005/12/26(月) 01:30:26
>>532
> # あまりパイプに関する資料が見つからなくて困っているのです…

あなたはバッファ付きI/O(stdio)を根本的に理解してない。
540デフォルトの名無しさん:2005/12/26(月) 01:57:02
>>532
> # あまりパイプに関する資料が見つからなくて困っているのです…

Advanced Programming in the UNIX Environment 一冊あれば充分。
541ヽ(´ー`)ノ ◆.ogCuANUcE :2005/12/26(月) 02:23:51
>>535
>>537 の言う通り、断片的なコードじゃなくて、再現する一番小さい
コードを貼れ。

あと Debian の sarge なら、libc は libc6 だと思うけど、それなら代わりに
libc6-dbg を入れて、こいつとリンクさせてgdb で見るのが一番手っ取り早い。

542デフォルトの名無しさん:2005/12/26(月) 08:59:56
>>532
>ただクライアントでfflushをしてやらないと止まってしまうようですが・・・。

クライアントは stdio 使ってるから、
バッファがいっぱいになるか、改行するなり、fflushするまで実際には送信されないよ。
543デフォルトの名無しさん:2005/12/26(月) 12:03:57
> クライアントは stdio 使ってるから、
> バッファがいっぱいになるか、改行するなり、fflushするまで実際には送信されないよ。

不正確な表記。
544デフォルトの名無しさん:2005/12/26(月) 12:27:23
すいません。ちょっと教えて下さい。

forkを使って、親プロセスと子プロセスを作成した後、親と子をパイプで
結び、パイプで通信(子が書いて、親が読む)させたいのですが、その時ってパイプの端をselectを
使用して待てるのでしょうか?

できれば使用例も御願い致します。
545デフォルトの名無しさん:2005/12/26(月) 12:39:38
http://i-111.hp.infoseek.co.jp/sakuramochi/
すみません。ユニックスかわからないんですが、ここのカウンターが変になってしまい、困っています。
多分、最後の画像結合処理が上手くいってないと思うんですが、

print &gifcat::gifcat(@dat);#関数を実行して、カウンターの画像をひとつの画像にまとめる
exit; #処理終了

ここの、、、初心者なので全然わからないんですが、誰か教えてたも。
546デフォルトの名無しさん:2005/12/26(月) 13:06:44
>>543
なら正確になるように補足して。
547523:2005/12/26(月) 13:15:23
>>525
環境がLinuxだとすると memory overcommit かもしれない
詳しくはぐぐってもらうとして、対処はあきらめるか
/proc/sys/vm/overcommit_memory を2にするらしい
548デフォルトの名無しさん:2005/12/26(月) 14:12:25
>>546
man setvbuf
549デフォルトの名無しさん:2005/12/26(月) 14:15:56
>>544
UNIXならselectで待てるけど
Windowsの場合はselectはネットワークsocket専用なので待てない
550デフォルトの名無しさん:2005/12/26(月) 14:26:04
>>549
UNIXです
551デフォルトの名無しさん:2005/12/26(月) 15:20:36
>>550
fdが判ってれば大丈夫じゃないかな?
552デフォルトの名無しさん:2005/12/26(月) 15:43:32
>>551
#define READ 0
#define WRITE 1
int main()
{
fd_setfdset;
charstr[80],cmd[80];
intpipe[2];

if(pipe(pipe)){
printf("->pipe_error\n");
}
fd = pipe[0];
FD_ZERO(&fdset);
FD_SET(fd, &fdset);
if(fork()){
switch(select(fd, &fdset, NULL, NULL, NULL )){
case -1: break;
default:
if(FD_ISSET(fd, &fd_set)){
read(pipe[READ], cmd, sizeof(cmd))←ここに入ってこない
}
break;
}
}
else{
strcpy(str, "0987654321");
write(pipe[WRITE], str, sizeof(str));
}
}
readできないのです・・・
553デフォルトの名無しさん:2005/12/26(月) 16:05:06
>>552
switch(select(fd+1, &fdset, NULL, NULL, NULL )){
554デフォルトの名無しさん:2005/12/26(月) 16:17:40
>>553
あっ忘れてました。
fd+1に変更したけど結果は一緒でした。
555デフォルトの名無しさん:2005/12/26(月) 16:19:00
>>548
もとネタはバッファはデフォルトのままだよ。
556デフォルトの名無しさん:2005/12/26(月) 16:53:43
>>554
FD_SET(fd+1, &fdset);
557デフォルトの名無しさん:2005/12/26(月) 16:58:40
ええ?
558デフォルトの名無しさん:2005/12/26(月) 17:02:17
>>556
だめでした(;_;)
559デフォルトの名無しさん:2005/12/26(月) 17:11:06
コンパイルできないソース貼られてもなあ
560デフォルトの名無しさん:2005/12/26(月) 17:44:54
>>559
上記はすいません。これはコンパイルできると思います。
#include <sys/types.h>
#include <unistd.h>
#include <sys/ipc.h>
#define READ0 #define WRITE1
int main(void)
{
fd_set fdset;
char str[80],cmd[80];
int pe_pipe[2],fd,error;
error = pipe(pe_pipe);
if(error != 0)
printf("->pipe_error\n");
fd = pe_pipe[READ];
FD_ZERO(&fdset);
FD_SET(fd, &fdset);
if(fork()){
switch(select(fd, &fdset, NULL, NULL, NULL )){
case -1: break;
default:
if(FD_ISSET(fd, &fdset))
read(pe_pipe[READ], cmd, sizeof(cmd));
}
}
else{
strcpy(str, "0987654321");
write(pe_pipe[WRITE], str, sizeof(str));
}
}

561デフォルトの名無しさん:2005/12/26(月) 17:55:32
sizeof(cmd) => strlen(cmd)
sizeof(str) => strlen(str)
562デフォルトの名無しさん:2005/12/26(月) 17:57:05
あー、いや strlen(cmd) はうそ。
563デフォルトの名無しさん:2005/12/26(月) 18:05:02
>>562
治しましたがダメでした(;_;)
564デフォルトの名無しさん:2005/12/26(月) 18:06:03
>560のコードでselect(fd,...)をselect(fd+1,..).にしたら
通るようになったけど。
565デフォルトの名無しさん:2005/12/26(月) 18:09:01
>>563
そっちは >>553 で指摘されてるから分かってるのかと思った・・・
566デフォルトの名無しさん:2005/12/26(月) 18:19:35
タイムアウト指定したら動いたけど?
なんでかなー。
567デフォルトの名無しさん:2005/12/26(月) 18:49:40
>>564
通るようになった?動いたって事?
select(fd+1,...)にしても動かないですけど・・・
568564:2005/12/26(月) 18:54:59
FreeBSD 6.0だが、動いて、きちんと終了した、ということ。
569デフォルトの名無しさん:2005/12/26(月) 18:57:26
とりあえず、straceとか、ktraceとか動かしてみたら?
570デフォルトの名無しさん:2005/12/26(月) 19:24:38
>>564
了解
>>569
やってみます
571デフォルトの名無しさん:2005/12/28(水) 23:28:54
武器ら棒な質問ですいません。
MPIのメリットはなんでしょうか? そもそもMPIというものは
なにをするものでなんでしょうか?
MPIについての概要がわかるサイトがありましたら、ご教示ください。
572デフォルトの名無しさん:2005/12/29(木) 00:34:04
分かってるんなら聞くなよ
573デフォルトの名無しさん:2006/01/03(火) 14:14:50
SolarisのLWPとユーザスレッドについて何ですが、
Solaris10上でなにも考えずにスレッド作ると、
スレッドと同じ数だけLWPが生成されるんですが、
このLWPの数を意図的に減らすことってできるんでしょうか?

なんか、SOLARISインターナルっう本を読む限りでは、
デフォルトでは「ユーザスレッド数>LWP数」な、
いい感じに調整されるって書いてあるんですが、
Solarisのバージョンがあがって仕様が変わったんでしょうか?
574デフォルトの名無しさん:2006/01/03(火) 14:23:38
>>573
Solaris 8 からスレッドモデルが変わった。現在はユーザスレッドと LWP は 1:1 の関係。
thr_create() した分だけ LWP がバインドされる。

Solaris 8 より前 --> M:N thread model
Solaris 8 --> M:N と 1:1 が LD_LIBRARY_PATH で選択出来た
Solaris 9 --> 1:1 thread model のみ
Solaris 10 --> 1:1 のみ。libthread が libc に入った

Solaris Internals は古いリリースの Solaris を元に記述されているから、ここら辺は
カバーされていない。詳細は「代替スレッドライブラリ」でググってみ。
575デフォルトの名無しさん:2006/01/03(火) 14:40:46
そもそも何で LWP の数を減らす必要が発生したのか考えた方が良いと思う。
それは何か間違いを犯している兆候だから。
576573:2006/01/03(火) 15:19:35
>>574
どうもありがとうございます。

>>575
深い理由は無いんですが、
いろいろと、スレッド周辺に関して調べたいもので。
577デフォルトの名無しさん:2006/01/05(木) 01:22:40
どこで質問するのかわかんね

~# /lib/libc.so.6
GNU C Library stable release version 2.3.2, by Roland McGrath et al.
Copyright (C) 2003 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 3.3.5 (Debian 1:3.3.5-12).

何が起きてこうなるの?
578デフォルトの名無しさん:2006/01/05(木) 01:23:26
何を質問したいの
579デフォルトの名無しさん:2006/01/05(木) 01:55:15
>>577
ELFのバイナリにはインタプリタへのパスを埋め込むことができる。
Linuxの場合はコンパイル時に明示的に静的リンクを指定しない
限り/lib/ld-linux.so.2あたりが埋め込まれる。
% strings /lib/libc.so.6 | grep ld-linux
で埋め込まれているのがわかるだろう。

shスクリプトを実行すると/bin/shが呼ばれるのと同じように、
インタプリタへのパスが埋め込まれているELFオブジェクトが
"実行"されるとカーネルはインタプリタを呼ぶ。だから
% /lib/ld-linux.so.2 /lib/libc.so.6
でも同じ結果になる。詳しいことはman ld.soすること。
580デフォルトの名無しさん:2006/01/06(金) 01:21:56
>>578
アホは引っ込んどきな
581デフォルトの名無しさん:2006/01/06(金) 16:35:02
LinuxでSIGSEGVやSIGFPEを無視する(あるいはエラー処理をしてプログラムを続行する)にはどうすればよいのでしょうか?
普通に無視すると無限ループになってしまうので。。。
582デフォルトの名無しさん:2006/01/06(金) 17:34:43
「無視」とはどう動くのを期待してるのか次第
583デフォルトの名無しさん:2006/01/06(金) 17:55:04
>>581
setjmpしておいた所にlongjumpする。
584デフォルトの名無しさん:2006/01/08(日) 13:40:16
UNIXネットワークプログラミングを読むと、バルク転送には
TCPを使うべきだって書いてありますよね。いまだにファイル転送にFTPを
使う意味ってなんなんでしょうか?
585デフォルトの名無しさん:2006/01/08(日) 13:44:07
F T P は ぁ 〜 、 T C P の ぉ 〜 上 位 プ ロ ト コ ル で 〜 す 。
H T T P も ぉ 〜 ( r y
586デフォルトの名無しさん:2006/01/08(日) 14:15:30
いまどきはUUCPですよ
587デフォルトの名無しさん:2006/01/08(日) 14:16:35
B-PLUSが最速ですよ
588デフォルトの名無しさん:2006/01/09(月) 03:01:13
FTPってサーバからクライアントへの接続があるよね
あれをなんとかしたのがPASV方式って認識であってる?
589デフォルトの名無しさん:2006/01/09(月) 03:13:11
まあ、ぶっちゃけそう。
590デフォルトの名無しさん:2006/01/09(月) 03:13:22
>>588
ええ
591デフォルトの名無しさん:2006/01/09(月) 04:47:55
>>589
ありがとう
お礼にうちに来て妹とファックしてもいいよ
592デフォルトの名無しさん:2006/01/09(月) 08:26:58
サーバーからクライアントはPORTの方だろ
PASVはクライアントからサーバーへ繋ぎに逝く
593デフォルトの名無しさん:2006/01/09(月) 09:01:57
>>592
日本語が不自由な人w
594デフォルトの名無しさん:2006/01/09(月) 09:30:47
>>592
PASVなモードではPORTコマンドを使わないような書き方だな…
595デフォルトの名無しさん:2006/01/09(月) 09:44:42
みんな日本人語が通じないぽい(><
596デフォルトの名無しさん:2006/01/09(月) 09:45:48
日本人語てなんやねん(><
597デフォルトの名無しさん:2006/01/09(月) 11:17:01
負け犬必死だな
598デフォルトの名無しさん:2006/01/13(金) 12:21:46
人少ないな
もうこのスレにはUNIX使いはいないのか
599デフォルトの名無しさん:2006/01/13(金) 13:22:36
人はいるけど書くことがないってところだろう
600デフォルトの名無しさん:2006/01/13(金) 14:41:18
ここに書いてもノイズしか拾えないような……
601デフォルトの名無しさん:2006/01/13(金) 14:59:07
sed '/^$/q' -> sed -e "/^$/q" に書き換えるとエラーになります
602デフォルトの名無しさん:2006/01/13(金) 15:03:30
$ をエスケープすりゃいいんじゃねえの?
^ もか?
603デフォルトの名無しさん:2006/01/13(金) 16:47:36
UNIXってWindowsのSendMessageみたいに同期処理される関数ってないの?
mq_sendのmsg_prioの優先順位高くしても同期処理はもちろんされないよね。
604デフォルトの名無しさん:2006/01/13(金) 17:05:36
WindowsのSendMessageと、UNIXのmq_sendは全然違うレイヤーのサービス。

Glib(のGObject)のsignalが、SendMessageに相当。
C++だとboostのsignalやQt(C++の独自拡張あり)のsignal/slotなど。
605デフォルトの名無しさん:2006/01/13(金) 17:07:28
>>604
SendMessageに相当→SendMessageのメッセージモデルに相当

606デフォルトの名無しさん:2006/01/13(金) 17:10:41
signalのばあいキューイングされないからそのまま置き換えたら何が起こるかわからないよ
607デフォルトの名無しさん:2006/01/13(金) 17:25:32
拡張されたReadTimeSignalの場合はキューイングされるんじゃなかったっけ?
でもこれって、LinuxとSolarisぐらいにしかない?
608デフォルトの名無しさん:2006/01/13(金) 18:22:27
やっぱ20年近くも後にいい物だけを取り込んで設計されただけあって、
Windowsはよく出来てるわ。過去との互換性を無理やり維持し続けながら
新しい機能を盛り込んでいくUNIXのやり方がだめってわけじゃないけど。
609デフォルトの名無しさん:2006/01/13(金) 18:33:03
610デフォルトの名無しさん:2006/01/13(金) 18:56:24
windowsの方がライトプログラマには極めて優しいよな
611デフォルトの名無しさん:2006/01/13(金) 19:04:43
hello world は unix の方が早く書けんじゃね?
612デフォルトの名無しさん:2006/01/13(金) 19:23:34
>>604
とりあえずGlibの使い方を調べてみます。どうもでした。
613デフォルトの名無しさん:2006/01/13(金) 20:29:06
>>607
それはsignal違いだろ。>>604の言っているのとは。

>>606がどっちの意味で言っているかわからんが。
>>603の用途だと同期的に使うわけだから、
>>604の言っている意味のsignalでは全く問題なし。
614デフォルトの名無しさん:2006/01/13(金) 23:06:32
マニュアルにはepoll_create(int size)のsizeはevent backing storeのサイズだと
書かれているけどevent backing storeって一体何のことなんでしょうか
どんな値を入れればいいのかがさっぱりです
>but just a hint to the kernel about how to dimension internal structures.
とも書いてあるので適当な値でも困ることは無さそうですが・・・
615デフォルトの名無しさん:2006/01/14(土) 00:13:42
>604
> Glib(のGObject)のsignalが、SendMessageに相当。
それは微妙に違う。
メッセージはメッセージでもGSignalはObjCやSmalltalkのアレみたいなもの。
616デフォルトの名無しさん:2006/01/14(土) 06:54:04
>>615
それSendMessageじゃん。

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpwinui/html/_win32_sendmessage.asp
1つまたは複数のウィンドウへ、指定されたメッセージを送信します。この関
数は、指定されたウィンドウのウィンドウプロシージャを呼び出し、そのウィ
ンドウプロシージャがメッセージを処理し終わった後で、制御を返します。
--------
http://www.gnome.gr.jp/docs/gobject-2.4.x-tut/html/ch03s02.html
シグナルは、そのシグナルを発行できる型の情報とともに型管理システムに登
録されています: その型を利用するオブジェクトは、シグナルが発行されると
呼び出されるクロージャを登録するときに、指定した型のインスタンスでシグ
ナルに接続する旨を宣言します。さらに、シグナルを利用するオブジェクト自
身がシグナルを発行したり、シグナルに接続しているクロージャの内部からシ
グナルの発行を停止することができます。
(略)
シグナルの発行は、g_signal_emit() 系の関数を使って行います。

617デフォルトの名無しさん:2006/01/16(月) 01:12:58
GTKでテキストエントリを使用しようと思ってのですが、
テキストエントリの表示サイズを指定する方法がわかりません。
画面の横いっぱいにテキストエントリが表示されてしまいます。
固定化するメソッドとかは無いのでしょうか?
何か方法があれば教えてください。
618デフォルトの名無しさん:2006/01/16(月) 01:43:51
>>617
GTK+ 2.0 チュートリアル (2003-01-24版)
http://www.gnome.gr.jp/docs/gtk+-2.0.x-tut/gtk-tut.html
619617:2006/01/16(月) 02:23:02
>>618
わかりやすいドキュメントありがとうございます。
gtk_table_atachの引数が問題だったみたいです。
こういう場合は、GTK_SHRINKを引数にとるんですね。
勉強になりました。
620デフォルトの名無しさん:2006/01/19(木) 00:23:10
write って書き込みバイト数 0 で呼ぶと
何もしない?
621デフォルトの名無しさん:2006/01/19(木) 00:30:35
ためせば。
622デフォルトの名無しさん:2006/01/19(木) 00:35:00
またすぐそーゆーことゆー
623デフォルトの名無しさん:2006/01/19(木) 00:40:36
>>622
Linuxだとmanに書いてあるよ
>ssize_t write(int fd, const void *buf, size_t count);
>If count is zero and the file descriptor refers to a regular file,
>0 will be returned without causing any other effect.
624デフォルトの名無しさん:2006/01/19(木) 10:32:46
>>623
レギュラーなファイルって、ソケットも含まれるかな?
デバイスファイルならそれは挙動が決まってはいないだろうけど。
625デフォルトの名無しさん:2006/01/19(木) 11:02:02
626デフォルトの名無しさん:2006/01/19(木) 15:58:57
>>624
For a special file, the results are not portable.
627デフォルトの名無しさん:2006/01/19(木) 17:11:07
>>626
ソケットはスペシャルなの?
628デフォルトの名無しさん:2006/01/19(木) 17:32:31
>>627
stat(2)
629デフォルトの名無しさん:2006/01/19(木) 19:37:18
>>624
regular file って、普通のファイルのことだぞ
socketは普通ファイルじゃないだろ

630デフォルトの名無しさん:2006/01/19(木) 20:12:32
regular満タンで
631デフォルトの名無しさん:2006/01/19(木) 20:21:36
632デフォルトの名無しさん:2006/01/20(金) 11:53:41
↑ グロ
633デフォルトの名無しさん:2006/01/20(金) 12:35:38
仕事でMotif2.1使う羽目になったから本を探そうとしたが、AmazonだとよくてMotif1.2、
下手すると「Motif1.2は発表されました」って時代の本ばかり。
つーか、紀伊国屋にはそのうちの1冊しかなかったよ_/ ̄|○
それ以外でもGtkがGnomeのおまけで1冊、Qtが2冊、なんてこったい。
634デフォルトの名無しさん:2006/01/20(金) 14:56:25
>>633
http://www.opengroup.org/openmotif/
http://www.motifdeveloper.com/

まあ今から変えられるならMotifやめとけ。
635デフォルトの名無しさん:2006/01/20(金) 15:35:33
>>633
差分は man 参照すれば解説本は 1.2 の奴で大丈夫だよ.
いまだに売ってるかどうかしらんが, 以下が日本語処理について
結構詳しかったりするのでわりとおすすめ.
ある程度 2 の方向性とかも書いてあるし...

OSF/Motif ルールキットプログラミング [I],[II]
著者: 林秀幸 日刊工業新聞社
ISBN4-526-03601-3
ISBN4-526-03739-7
636デフォルトの名無しさん:2006/01/20(金) 16:11:32
openmotif/demos/programs/にたくさんサンプルがある。
i18ninputの下にXIM関係もある。
637633:2006/01/20(金) 16:35:57
>>634-636
レスTHX。

>>634
今更換えられないけど、もう懲りた。次は他を探しま。

>>635
今回の案件は言語処理は殆どないけど、参考にしてみま。

>>636
おおっ、これは素晴らしい。

さてこれで今月は凌げる(苦笑
638デフォルトの名無しさん:2006/01/20(金) 16:43:24
>>632
普通
639デフォルトの名無しさん:2006/01/21(土) 19:35:30
ToolTalkがさっぱり判らないんですが、
判りやすい解説とかありませんか?
640デフォルトの名無しさん:2006/01/21(土) 19:41:15
今時tooltalkとは…

ToolTalk ユーザーズガイド
http://docs.sun.com/app/docs/doc/816-3975?l=ja
641639:2006/01/21(土) 19:51:03
済みません。それを読んでも理解できないので、
もっと低脳向けのゆるゆるな奴を捜しているんですが・・・
642デフォルトの名無しさん:2006/01/22(日) 08:06:28
>>638
普通って言うな!!
643デフォルトの名無しさん:2006/01/22(日) 10:12:56
>>641
http://h30097.www3.hp.com/docs/i18n/japan/JCDETTMSG/GetStart_2.html
もあげておくが、諦めた方がいいと思う。
644デフォルトの名無しさん:2006/01/22(日) 18:47:47
>>643
天下のHPの癖に文字化けか
エンコードきちんと設定しとけよアホかHP
645デフォルトの名無しさん:2006/01/25(水) 23:23:06
\\\\\\\   i::::::::Windowsヾi              //////////
\\\\\\      |:::::::| ,,,,,_  ,,,,,,|                ////////
\\\\\       |r-==( 。);( 。)                  //////
\\\           ( ヽ  :::__)..:: }            / ヽ   ___  ///
\        ,____/ヽ  ー== ;       ,-、   ( ィ j   /  UnI \
        r'"ヽ   t、   \___ !      (Y _)、 / /     | ^    IX |
      / 、、i    ヽ__,,/          \ / /       (_,, )ヽ、. / |
      / ヽノ  j ,   j |ヽ           / /\      !ニ=- ノ  _!_
     |⌒`'、__ / /   /r  |         / / \ \    ヽニ´/ ̄  `ヽ
     {     ̄''ー-、,,_,ヘ^ .|         / /     \ \    〉/        } アホ de GOMEN NE
    ゝ-,,,_____)--、j         / /        \ \  / i,、_,   , ,',;:',i
      / \__      /       / /              \ \ l l   ,; / ,',l
      |    "'ー‐‐---''     / /              ヽ ン´ヽ   ,';','i
    / l`、      /     / /                   (;;/;;,',';;  ゙i   ,;';i
  ,〃  _l:::::`ー,=-'(   / /                    /,',',';;"  /i ,;',/
 /     ´ゞ._;;;:r';二二二´__ノ                    ,' 、  / /  \
 l    ,.''"  `'(:::)、::    ` 、                   〈   <    {////
 ;    ,'"      `ー、__  `l                  i;,;、  !    ´´´
 l   ;'       /::::::::::::::::ノ                   !,;;   i
 |  ._i'       ヽ`''「 ̄ ̄                      |,','、 i
646お願いします;;:2006/01/26(木) 23:48:52
任意の生年月日と今日の日付を入力すれば、
産まれてから今日まで生きてきた日数を出力するプログラムを作れ。
さらに、任意の整数nを入力して、産まれてからn日目が、
いつかを出力させるプログラムを作れ。
ちなみに、閏年は以下のようにして決められる。

1)基本的に西暦が4で割り切れたら閏年。
2)しかし、西暦が100で割り切れたら閏年ではない。
3)しかし、西暦が400で割り切れたら閏年とする。

レポート作成
予備的考察、プログラム、プログラムの説明、計算結果、考察

フォートラン使用・・・
647デフォルトの名無しさん:2006/01/26(木) 23:52:57
じゃ、考察だけ。

「やはり宿題は自分でやってこそ身に付く物だと実感した」
648お願いします;;:2006/01/27(金) 00:04:18
誰か 助けてくれ・・・orz
649デフォルトの名無しさん:2006/01/27(金) 00:05:18
650デフォルトの名無しさん:2006/01/27(金) 00:16:20
はい質問、任意の生年月日、ということは、
神武天皇の誕生日など入れても算出する
必要がある、ということですか?
651お願いします;;:2006/01/27(金) 00:39:01
マルチってなんじゃー;;
ごめんなさい いろんな板で質問して・・・

身につかなくていい、つかなくていいんすよ先輩!

お願いしますorz
652デフォルトの名無しさん:2006/01/27(金) 00:51:10
そんな気持ちで社会に出て来られても困るな。
653デフォルトの名無しさん:2006/01/27(金) 00:55:59
>>646
> 任意の生年月日と今日の日付を入力すれば、
同じ西暦でも現用のグレゴリオ歴とユリウス歴の切り替え点が
あるし, 切り替え点も国によっ違ったりするため, 出題の方に
問題がある.
ましてや, 国によっては元号問題その他がある云々のへりくつ
をこねくり倒して,
> 予備的考察
の部分で, 出題自体がナンセンスだと決めつけ, ゆえに,
> プログラム、プログラムの説明、計算結果、
は事実上不可能だとし,
> 考察
の部分で, 「こんな出題をするおまえは能無しか!!!」と罵倒し
て終わる.

ってなところでしょうかね?
654お願いします;;:2006/01/27(金) 00:56:44
たしかに・・・な

んー・・・;;

ごめんなさい 板汚しました。
655お願いします;;:2006/01/27(金) 00:58:25
↑は>>652です

失礼しました。 消えます。
656デフォルトの名無しさん:2006/01/27(金) 01:00:16
ま、頑張れよ!
657デフォルトの名無しさん:2006/01/27(金) 01:02:59
じゃあ重要なヒントをあげよう。

まずは、自分が生まれてから今日が何日目か、手で計算してみろ。
単に答だけ出すんじゃなくて、数学の問題を解くように思考過程を
きちんと押さえるんだぞ。

自分で筋道立てられないから大きな問題を出されるとどうしていいかわからず
にっちもさっちもいかなくなるんだろうな。頭の悪い奴。

>>653
工学的には、適当な仕様を定めて解を出すべき。理学的には知らんけど。
658デフォルトの名無しさん:2006/01/27(金) 01:06:56
>>657
いや, マジに突っ込まれても...
659デフォルトの名無しさん:2006/01/27(金) 01:52:51
まあちゃんと計算すれば、今まで食べたパンの枚数も概算できるよな
660デフォルトの名無しさん:2006/01/27(金) 02:17:32
Linux で malloc() がスレッドセーフかどうかを調べたいのですが、
man にはスレッドについての記述はありません。
実験を繰り返すほかに何か手は無いでしょうか?
661デフォルトの名無しさん:2006/01/27(金) 07:40:14
glibcのmallocはptmalloc2ベースでMT-Safeです。
$(GLIBC)/malloc/malloc.cのコメント以外に詳しいドキュメントはありません。

/lib/tls/libc.so.6がlinkされていれば、MT-Safeです。
662660:2006/01/27(金) 10:39:51
>>661
ありがとうございます。ソースを漁って確認することにします。
663デフォルトの名無しさん:2006/02/02(木) 11:19:49
signalてマルチスレッドなの?selectとか誰の領域でスタンバっててくれるの?

いやもっと掘下げないと自分が理解できない、alarmとかは誰の仕事?
もう質問の仕方がわけわかんないんで、猿でもわかるUNIXシステムコール入門本教えてください
664デフォルトの名無しさん:2006/02/02(木) 12:12:21
質問内容から言っても入門じゃなくて、この辺だろ。

詳解UNIXプログラミング
http://www.amazon.co.jp/exec/obidos/ASIN/4894713195/
Unix Programming Frequently Asked Questions 日本語訳
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_toc.html
665デフォルトの名無しさん:2006/02/02(木) 16:35:22
>664
下のURL最高、そんなサンプルが見たかった。
しかも本の説明どんぴしゃ!注文する。本当ありがと!

ヘッダ広げて片っ端から叩いてるのにわからなくて悔しいぜ
本たけー
666デフォルトの名無しさん:2006/02/02(木) 18:55:36
>>665

Lions’ Commentary on UNIX
http://www.amazon.co.jp/exec/obidos/ASIN/4756118445/
BSDカーネルの設計と実装−FreeBSD詳解
http://www.amazon.co.jp/exec/obidos/ASIN/4756146791/
Solarisインターナル−カーネル構造のすべて
http://www.amazon.co.jp/exec/obidos/ASIN/4894714582/

あたりもおもしろいかもね。
667デフォルトの名無しさん:2006/02/05(日) 21:05:57
UNIXでお勧めのBSDか商用のコンパイラを
教えたいただけないでしょうか?
668デフォルトの名無しさん:2006/02/05(日) 22:32:42
(゚д゚)ハァ?
669デフォルトの名無しさん:2006/02/05(日) 23:19:07
UNIXでお勧めのVAXか商用のEmacsを
教えといただけないでしょめか?
670デフォルトの名無しさん:2006/02/05(日) 23:27:24
UNIXでお勧めのSystemVか商用のlsを
教えちいただけないでせうか?
671デフォルトの名無しさん:2006/02/05(日) 23:32:25
「BSDか商用の」っていうのはライセンスの話じゃねえの?
ようするにGPLじゃないやつみたいな感じ。
なんのコンパイラか知らんけどさ。
672デフォルトの名無しさん:2006/02/05(日) 23:32:45
マヂレスすると、BSDL か商用って事ぢゃないかと。
673デフォルトの名無しさん:2006/02/05(日) 23:33:47
う、被った…
674デフォルトの名無しさん:2006/02/05(日) 23:48:45
コンパイラ自体で商売しようってんでない限り
gccでかまわないと思うんだが、何が問題なんだろう。

x86系ならIntelの奴とか、
他の石でもプロセッサメーカーが出してるコンパイラがあるはず。
商用UNIXもgccでないコンパイラは載せてる。
お勧めかどうかは用途次第なのでなんともいえないが。
675デフォルトの名無しさん:2006/02/05(日) 23:54:38
>>674
gccは顧客や上層部が信頼してないときがあるからな
いや、信頼というよりは責任をなすりつける先が無いことに対する不安か
676デフォルトの名無しさん:2006/02/06(月) 00:01:00
Solaris なら Sun Studio がダウンロード出来る。
677デフォルトの名無しさん:2006/02/06(月) 00:35:38
>>671-672
そうです、BSDLでした。orz
>>674,676
研究目的で配布予定とかは無いのですが念のためにGLP系以外で
作ろうかと思いました。
ありがとうございました。教えて頂いたのを参考にさせてもらいます。
678デフォルトの名無しさん:2006/02/06(月) 02:16:21
すみません、シェルと同じワイルドカードのマッチング判定をしたいのですが
そのまま使えるような関数ってありますか?
(regcomp()は、そのまま使うと"*.txt"がコンパイル出来ないし)
679デフォルトの名無しさん:2006/02/06(月) 02:22:52
glob(3C)
680デフォルトの名無しさん:2006/02/06(月) 02:23:04
むー、なんかbashのソースをちらっと眺めた限りでは
自前で判定してるっぽいな・・・
681デフォルトの名無しさん:2006/02/06(月) 02:31:02
あ、globというのがあるのか。
でも、「文字列の一致判定」じゃなくて「一致するパスの列挙」だな。
欲しいのとはちょっと違う。

自前でreaddir()するつもりだったけど
書き換えることも考えよっと。
682679:2006/02/06(月) 02:31:37
(;つД`)
683デフォルトの名無しさん:2006/02/06(月) 02:37:06
あら、fnmatchという、そのものずばりもあるのか。

>>679
ごめん。もっとよく調べてから書き込めばよかった。
書き込んでからもリロードせず調べてたもんだから。
でもありがとう。
684デフォルトの名無しさん:2006/02/06(月) 08:39:23
>>681
「ちょっと違う」←嘘じゃん? ズバリじゃん?

>>677
GLPか…プラットホーム(wくらい書いた方がいいと思う。
685デフォルトの名無しさん:2006/02/08(水) 03:42:47
>>683
scandir() というのも Linux にあるぞ。UNIX にもあるんじゃないのか?
man 見ると BSD 4.3 から取り入れられたと書いてあるぞ。
686デフォルトの名無しさん:2006/02/08(水) 03:43:54
あ、ちょっと違うな。scandir() は正に scan しかしないや。比較は自分で書くんだ。
687デフォルトの名無しさん:2006/02/08(水) 09:38:23
シェルと同じ展開をさせたいならシェルを起動すればいいじゃない。
#popen()使うとか。
漏れはシェルワイルドカードを正規表現に変換したがな。
688678:2006/02/08(水) 14:15:26
みんないろいろアドバイスありがとう。
実はファイルやディレクトリの差分/日付チェック付コピーを作っていたのよ。
Windowsで動くように作ったものがあって
それを(最小限の#ifdefで)少しでも多くの環境でも動くようにしようかなと。
(実際に自分で使うのはLinuxかせいぜいFreeBSDまでだとは思うけど)

で、今回の件については、使っているのが2個所あって
一つはFindFirstにマスクを渡して一致するファイルの一覧を取得するところで
ここはglobその他の方法が使えるんだけど
もう一つ、あるファイルの扱いを決めるためにワイルドカードと一致するかの判定を
複数回やる部分があって、ここで単純な文字列比較が欲しかった。

こんな感じのテーブル(使う側で設定)がいくつかあって
char *nosave_files[] = {"*.bak","*.obj","subject.txt", NULL,};
char *incremental_files[] = {"*.dat","*.gzi",NULL,};
あるファイル名filenameに対して
if (isnosave(filename)) { ... }
if (isincremental(filename)) { ... }
みたいな判定をしたい。
で、その内部で呼び出すのが
 if (table)
  while (*table) {
   if (fnmatch(*table, file, 0)) return true; // 実際は#define PathMatchSpec() ..
   table++;
  }
なので。

で、しばらくしたらまた何か聞くかも。
ファイル更新時刻の扱い方(特に秒以下の単位)とか。
689デフォルトの名無しさん:2006/02/09(木) 08:12:13
そんなものはシェルスクリプトで書け。
690デフォルトの名無しさん:2006/02/09(木) 09:49:08
はいはい
691デフォルトの名無しさん:2006/02/09(木) 11:44:14
そうやって車輪の再発明が各地でなされ
貴重な時間が失われていくのであった。
692デフォルトの名無しさん:2006/02/09(木) 23:49:43
httpdを作りたくても、apacheがあるから車輪の再発明ですか?
ワープロもブラウザも、作っている人は皆再発明をしていると言いたいのですか?

何で、既にsolarisやAIX,HP-UX等があるのに、
わざわざOSなんてものを再発明する人が居るんですか?
693デフォルトの名無しさん:2006/02/10(金) 00:14:39
楽しいから!
694デフォルトの名無しさん:2006/02/10(金) 00:16:31
>>692
それらは、まったく同じ物を開発してるわけじゃ無いだろ
695デフォルトの名無しさん:2006/02/10(金) 00:30:57
>>694
>>691は、まったく同じ物が既にあるから、車輪の再発明という言葉を使っているの?
696デフォルトの名無しさん:2006/02/10(金) 00:38:44
>>695
httpdを作りたくても、apacheがあるから車輪の再発明ですか?
ワープロもブラウザも、作っている人は皆再発明をしていると言いたいのですか?

何で、既にsolarisやAIX,HP-UX等があるのに、
わざわざOSなんてものを再発明する人が居るんですか?
697デフォルトの名無しさん:2006/02/10(金) 01:00:50
>>696>>692の再発明。
698デフォルトの名無しさん:2006/02/10(金) 01:01:32
あなたは692が691への揶揄だということすら気がつかない人間ですか?
699デフォルトの名無しさん:2006/02/10(金) 01:32:01
揶揄って読めても書けないよな
700デフォルトの名無しさん:2006/02/10(金) 07:03:54
揶揄
701デフォルトの名無しさん:2006/02/10(金) 09:51:57
Linuxで、CPU使用率とメモリ使用率を取得する方法を探しています。
topコマンドがあるんだからなんか方法があるんだろうと探していましたが、たどり着けません。
FreeBSDのtopコマンドのソースは見つかったんですが、Linuxにはもっていけないようです。
どなたかご教授ください。
Linuxのtopコマンドのソースの在り処も教えていただけると助かります。
702デフォルトの名無しさん:2006/02/10(金) 10:05:05
/proc使いなよ。

> Linuxのtopコマンドのソースの在り処も教えていただけると助かります。

自分の使っているディストリのスレ@Linux板で聞け
今時はコマンド一発で取得できる。
703デフォルトの名無しさん:2006/02/10(金) 10:24:52
>>702 ども。
/procの下にあるファイルを直接参照するって事ですか?
もしかして最悪ディストリ毎に参照の仕方を変えないといけないかも知れない?
てことは/proc下のファイルの見方もディストリ毎のスレに行った方がいいって
事ですか・・・。
704702:2006/02/10(金) 10:46:09
ソースの在処を教えろ→ディストリのスレ

それからLinuxカーネルとディストリの関係も調査しる!
705デフォルトの名無しさん:2006/02/10(金) 12:20:14
>>701
getloadavg(3)
getrusage(2)
706尻フェチ会社員、33歳:2006/02/11(土) 00:16:02
>>703
/procの下の見方はmanに載ってるよ
でも肝心なところはぼかして書いてあるから要注意

Linxuのドキュメントってバージョンアップ時の追随が
面倒なのか恐いのか そういうのが多いよな
707デフォルトの名無しさん:2006/02/11(土) 00:59:44
load average って CPU 数で読み方変わるのな。
うっかりそっちも平均取ってるかと思い込んでたよ。トホホ。
708ヽ(´ー`)ノ ◆.ogCuANUcE :2006/02/11(土) 13:41:33
>>703
Linux ならカーネルに付属してる Documentation/filesystems/proc.txt とか。
最新じゃないかもしれないが、man よりはメンテナンスされてるだろう(多分)。
709デフォルトの名無しさん:2006/02/12(日) 05:04:00
すいません、プログラミング分からない初心者です。
何となく概念とか仕組みみたいなのが分かる程度です。
OSはsolaris9 処理系はSun studio 11と
gcc-3.3.2を使っています。
今transcode-1.0.2をコンパイルしているんですけど、
transcode-1.0.2/libxio/libxio.cをコンパイルしていると
libxio.c: In function `xio_open'
ibxio.c:644: error: `errno' undeclared (first use in this function)
libxio.c:644: error: (Each undeclared identifier is reported only once
libxio.c:644: error: for each function it appears in.)
と以下全てのerrorが未定義となっていてコンパイルできません。
ソースの先頭で#include <sys/errno.h>となっていて
一応export INCLUDE=/usr/includeとちゃんとパスも通っているんですけど・・・
ソースも
errno = EINVAL;とか errno = EIO;
となっていて、正しそうで正直どうすれば良いのかさっぱり分かりません。
どうすればコンパイルできるのでしょうか?
710デフォルトの名無しさん:2006/02/12(日) 05:22:35
>>709
多分、何かが原因でerrnoが定義されて無いだけだよ

transcode-1.0.2/libxio/libxio.c の先頭あたりに
int errno;
と定義すれば、コンパイルは通るようになるよ
グッドラック!
711デフォルトの名無しさん:2006/02/12(日) 05:29:24
>>710
おいおい……

>>709
#include <errno.h>
を追加してみてもダメか?
それでダメなら
extern int errno;
だな。
#詳しくはman -s 3 errno参照で。
712709 :2006/02/12(日) 06:41:27
>>710 711
さん、本当にありがとうございました。
711さんの方法#include <errno.h>を追記で上手く行くことが出来ました!
その後もいくつかインクルードファイルでコンパイルできないところが出てきたんですけど、
今回の件を参考に何とか乗り切ることが出来ました。
インクルードファイルって""で括って絶対パスで直接指定出来たんですね!知らなかった!
でもまた一つ質問してもよろしいでしょうか?今度はマジで?です。
/tmp/transcode-1.0.2/import/pvnglobals.cなんですけれど、コンパイル中に
pvnglobals.c: In function `floatToBuf':
pvnglobals.c:658: error: `BIG_ENDIAN' undeclared (first use in this function)
pvnglobals.c:658: error: (Each undeclared identifier is reported only once
pvnglobals.c:658: error: for each function it appears in.)
pvnglobals.c:658: error: `LITTLE_ENDIAN' undeclared (first use in this function)
以下BIG_ENDIAN、LITTLE_ENDIANが未定義の繰り返しなんですけれど、
BIG_ENDIANとLITTLE_ENDIANってどうやって定義するんでしょうか?ちなみにSPARCなのでBigendianのハズなんですけれども・・・
713709 :2006/02/12(日) 06:52:48
こんな事を直前でやっています
gcc -DHAVE_CONFIG_H -I. -I. -I.. -D_REENTRANT -DMOD_PATH=\"/usr/local/lib/transcode\"
-I.. -I../src -I../libtc -I../libac3 -I../avilib -I/usr/include -I../libvo -I../libxio
-Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
-g -O2 -MT pvnglobals.lo -MD -MP -MF .deps/pvnglobals.Tpo -c pvnglobals.c
-fPIC -DPIC -o .libs/pvnglobals.o
で、ソースが
/* take a single float and write it (w/big-endian) into the buffer
there must be >= 4 bytes at *buf
returns OK or ERROR */
int floatToBuf(float f, unsigned char *buf)
{
int i;
unsigned char *p = (unsigned char *)&f;
if (buf == NULL)
return(ERROR);
if(BYTE_ORDER == LITTLE_ENDIAN)
714709 :2006/02/12(日) 07:00:24
ちゃんとpvnglobals.hには
#ifndef BYTE_ORDER
#ifdef WORDS_BIGENDIAN
#define BYTE_ORDER BIG_ENDIAN
#else
#define BYTE_ORDER LITTLE_ENDIAN
#endif
#endif
こう書いて有るんですけど
715デフォルトの名無しさん:2006/02/12(日) 11:15:16
BYTE_ORDERがすでにどっかで定義されてるんでしょ?
こういうイヤなエラーが出るのはあきらめるが吉

とりあえず gcc じゃなくて、Sun Studio 11 使ってみては?
(cc は /opt/SUNWspro/bin/cc あたりだと思う)
716デフォルトの名無しさん:2006/02/12(日) 15:18:36
>>715
> こういうイヤなエラーが出るのはあきらめるが吉
とりあえず
find /usr/include -name '*.h' | xargs grep BYTE_ORDER
するのが普通なのでは?
717709 :2006/02/13(月) 02:43:31
>>715 716
ありがとうございます。
Sun Studio 11だとコンパイル以前に構文がおかしいと言われてコンパイルできないんです。
716さんのおっしゃる通りやってみて、似たような事書いてあるヘッダファイル取り込んだらコンパイルできました。
でも、最後のldでこんなエラーが出ます。
最後の最後なんですけど、なんとかならないものでしょうか?
gcc -Wall -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
-D_FILE_OFFSET_BITS=64 -g -O2 -o
tcdecode tcdecode-tcdecode.o tcdecode-decode_ac3.o tcdecode-decode_mpeg2.o
tcdecode-decode_yuv.o tcdecode-fileinfo.o tcdecode-ioaux.o tcdecode-decode_dv.o
tcdecode-decode_mp3.o tcdecode-mpg123.o tcdecode-decode_a52.o tcdecode-decode_af6.o
tcdecode-scan_dv.o tcdecode-decode_lavc.o tcdecode-decode_xvid.o
tcdecode-decode_ogg.o tcdecode-decode_mov.o tcdecode-decode_lzo.o
../libac3/.libs/libac3_tc.a ../libvo/.libs/libvout.a
../aclib/.libs/libac.a
../libtc/.libs/libtc.a /usr/local/lib/libiconv.so
-lm -lz -ldl -R/usr/local/lib -R/usr/local/lib











718709 :2006/02/13(月) 02:45:59
Undefined first referenced
symbol in file
avcodec_register_all tcdecode-decode_lavc.o
mpeg2_buffer tcdecode-decode_mpeg2.o
avcodec_find_decoder tcdecode-decode_lavc.o
avcodec_decode_video tcdecode-decode_lavc.o
mpeg2convert_rgb24 tcdecode-decode_mpeg2.o
mpeg2_parse tcdecode-decode_mpeg2.o
mpeg2_accel tcdecode-decode_mpeg2.o
mpeg2_close tcdecode-decode_mpeg2.o
avcodec_alloc_context tcdecode-decode_lavc.o
mpeg2_info tcdecode-decode_mpeg2.o
mpeg2_init tcdecode-decode_mpeg2.o
avcodec_init tcdecode-decode_lavc.o
avcodec_open tcdecode-decode_lavc.o
mpeg2_convert tcdecode-decode_mpeg2.o
ld: fatal: Symbol referencing errors. No output written to tcdecode
collect2: ld returned 1 exit status
719デフォルトの名無しさん:2006/02/20(月) 07:28:02
現在の自分自身のメモリ使用量の取得方法を教えてください
720デフォルトの名無しさん:2006/02/20(月) 08:09:13
自分自身って何だよ。プロセス? ユーザ? マシン全体?
質問する時は OS の名前を添えて、内容は具体的に。
721デフォルトの名無しさん:2006/02/20(月) 10:51:23
>>719の脳味噌の詰まり具合だったりして
722デフォルトの名無しさん:2006/02/20(月) 11:42:40
$ cat /proc/$$/stat
723デフォルトの名無しさん:2006/02/20(月) 18:58:02
現在の自分自身の実行パスの取得方法を教えてください
724デフォルトの名無しさん:2006/02/20(月) 19:09:34
>>723
>>4
> □ 1.14 どうすればプロセスの実行ファイルを見つけられますか?
725デフォルトの名無しさん:2006/02/20(月) 19:28:26
$ readlink /proc/$$/exe
/bin/bash
726デフォルトの名無しさん:2006/02/20(月) 19:56:27
% ls -l /proc/self/path/cwd
727デフォルトの名無しさん:2006/02/20(月) 19:59:11
$ readlink /proc/curproc/file
/bin/sh
728デフォルトの名無しさん:2006/02/20(月) 20:04:47
>>725-727
おまいらきもいよ
729デフォルトの名無しさん:2006/02/20(月) 20:06:49
char path[PATH_MAX + 1];
size_t len = sizeof(path);
int mib[4] = { CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1 };
sysctl(mib, 4, &path, &len, NULL, 0);
730デフォルトの名無しさん:2006/02/20(月) 20:09:10
FreeBSD 6? は何で /proc 使わないの?
731デフォルトの名無しさん:2006/02/20(月) 20:11:23
>>726
それちょっとチガワねーか?
732デフォルトの名無しさん:2006/02/20(月) 20:22:24
>>730
jail と相性が悪いから
733デフォルトの名無しさん:2006/02/20(月) 20:27:14
>>725
そのUNIX、何ていうやつ?
参考までに教えて。
734デフォルトの名無しさん:2006/02/20(月) 20:31:34
>>733
これLinuxでしょう。

>>727
/bin/readlink
にならないのはどのOS? というかなんで?
735デフォルトの名無しさん:2006/02/20(月) 20:39:03
readlinkがbuilt-inなんじゃね?
736デフォルトの名無しさん:2006/02/20(月) 20:41:30
>>734
ごめん、勘違いした
$ readlink /proc/curproc/file
/usr/bin/readlink
になったよ freebsd
737デフォルトの名無しさん:2006/02/20(月) 20:56:52
>>731
どゆこと?
実行パス→実行ディレクトリかなと思ったんだけど、実行ファイルの
パスなら /proc/self/path/a.out だね。
738デフォルトの名無しさん:2006/02/20(月) 20:57:54
>>732
なるほど。サンクス。
739デフォルトの名無しさん:2006/02/22(水) 05:23:00
メモリリークが発生しているかどうかを調べる方法を教えてください
740デフォルトの名無しさん:2006/02/22(水) 08:12:14
>>739
メモリリークを検出するプログラムを使う。
741デフォルトの名無しさん:2006/02/23(木) 17:04:22
おまいの言うメモリーリークがどんな現象か書くべし
742デフォルトの名無しさん:2006/02/24(金) 01:30:51
メモリーがリークしている状態のことです。
743デフォルトの名無しさん:2006/02/24(金) 03:21:48
僕の肛門の内容物もリークしそうです!
744デフォルトの名無しさん:2006/02/24(金) 08:07:04
自分自身のIPアドレスを取得する方法を教えてください
745デフォルトの名無しさん:2006/02/24(金) 08:11:41
746デフォルトの名無しさん:2006/02/24(金) 09:52:45
ioctl, SIOCGIFADDRでググれ
747デフォルトの名無しさん:2006/02/24(金) 18:32:04
メモリリークって
確保した領域外にアクセスすることなのか、
解放したはずのメモリが解放されないことなのか
よおわからん。
748デフォルトの名無しさん:2006/02/24(金) 18:45:49
確保した領域がどこだったか、自分でわかんなくなっちゃうこと。
どこだかかわからんので結果として解放もできない。
749デフォルトの名無しさん:2006/02/24(金) 21:23:50
>>747
> 解放したはずのメモリが解放されないことなのか

正解。
http://www.instantweb.com/foldoc/foldoc.cgi?memory+leak

>>748
間違い。
750デフォルトの名無しさん:2006/02/24(金) 21:26:21
>>748
自分で判ってて解放しない場合は?

>>747
リークって言葉の意味は判る?

>>743
成人用お襁褓でもしときなさい。
751デフォルトの名無しさん:2006/02/25(土) 05:22:23
>>749
p = malloc(1024);
p = malloc(1024);
free(p);

最初のmallocが返した領域はリークするけど
「解放したはずのメモリが解放されないこと」ではないよね。

>>750
わかってて解放しないのはリークとは言わないんじゃないかな。
一回だけ走って終了するプログラムならぜんぜん解放しないのもありでしょう。
752デフォルトの名無しさん:2006/02/25(土) 05:48:39
まあ、回りくどくなく言えば、解放のし忘れだわね。
753デフォルトの名無しさん:2006/02/25(土) 06:05:58
>>751
いやいや。プログラマーが忘れているの。でもコンピュータは忘れないからね。
754デフォルトの名無しさん:2006/02/25(土) 06:08:28
解放のし忘れじゃなくて、(ポインタの)保存のし忘れだってリークだよ。
755デフォルトの名無しさん:2006/02/25(土) 07:04:15
「解放したはずのメモリが解放されない」ってのは、

char *p = malloc(1024);
free(p);

とやっても、pが指すメモリが解放されないって意味にならないか?
756デフォルトの名無しさん:2006/02/25(土) 09:08:34
ルートから到達不可能なヒープ領域があったら
メモリリーク
757デフォルトの名無しさん:2006/02/25(土) 09:33:52
>>749がFOLDOC示してるんだからそれで終了だろ。
英語読めないヤツは翻訳して読め。

An error in a program's dynamic store allocation logic that causes it
to fail to reclaim discarded memory, leading to eventual collapse due
to running out of memory.

利用しなくなったメモリの回収失敗を引き起こすような
プログラムの動的領域確保ロジックの失敗。
これによりいつかメモリ枯渇による破綻を生みかねない。
758デフォルトの名無しさん:2006/02/25(土) 09:58:10
>>756
定義としてはこれが一番だな。
759デフォルトの名無しさん:2006/02/25(土) 10:24:41
非 GC 場合のルートって何さ?
free しても system に返されない分は到達不可能な訳だが。
760デフォルトの名無しさん:2006/02/25(土) 11:00:47
>非 GC 場合のルートって何さ?

プログラム内の変数が押さえてるところ。

>free しても system に返されない分は到達不可能な訳だが。

malloc/free のライブラリが押さえてる。
761デフォルトの名無しさん:2006/02/25(土) 11:07:31
>>760
> プログラム内の変数が押さえてるところ。

変数に「到達可能な」と限定をつけないと駄目だよね。

UNIXプログラミングに関係ないからそろそろやめないか。
762デフォルトの名無しさん:2006/02/25(土) 11:11:16
存在する変数はすべて到達可能だろ。

じゃあ、おしまい。
763デフォルトの名無しさん:2006/02/25(土) 11:15:35
頭悪
764デフォルトの名無しさん:2006/02/25(土) 11:23:55
>>760
違和感ありまくりなんだが...
まぁ、どうでも良いけど。
765デフォルトの名無しさん:2006/02/25(土) 11:29:50
>>762
extern char *p;

p = (char *) malloc(size);
// 以下pもpのアドレスもプログラム内に一切登場せず

でメモリリークだろ。

これから実行されるプログラムから到達可能じゃないといけない。
変数かどうかは関係ない。(たとえばreturn malloc(〜);など)
766デフォルトの名無しさん:2006/02/25(土) 12:31:53
それはリークしてない
767デフォルトの名無しさん:2006/02/25(土) 13:12:48
>>765
バカは議論に参加するな。スレが荒れる
768デフォルトの名無しさん:2006/02/25(土) 13:25:21
ジエーンど
769デフォルトの名無しさん:2006/02/25(土) 13:30:39
>>766
リークの意味分かってないだろ。
770デフォルトの名無しさん:2006/02/25(土) 13:33:49
彼女の中でリークした
771デフォルトの名無しさん:2006/02/25(土) 13:44:19
今晩もおリークだ。
772デフォルトの名無しさん:2006/02/25(土) 16:06:50
やあ、漏れはリークだ
773デフォルトの名無しさん:2006/02/25(土) 16:13:09
munmap(>>739-772)
774デフォルトの名無しさん:2006/02/25(土) 16:53:30
おれこのプロセスでどんだけmallocしてたっけ?
ってのを参照するAPIがあればいいんだがにゃー
775デフォルトの名無しさん:2006/02/25(土) 16:58:42
そんなmallocライブラリは山ほどありますよん。
malloc debugでググってね
776デフォルトの名無しさん:2006/02/25(土) 17:13:25
>>774
見つけたとして、それを解放しちゃっていいかまでは判断できないんじゃ。
デバッグに使えるくらいだ。
777デフォルトの名無しさん:2006/02/25(土) 17:27:21
ほんならBoehmでも使えばええやないの。
778デフォルトの名無しさん:2006/02/25(土) 17:43:12
Boehmも万能じゃないっしょ
779デフォルトの名無しさん:2006/02/25(土) 17:49:55
万能キター!
780デフォルトの名無しさん:2006/02/25(土) 18:14:15
ほんなら欲しいもの自分でつくれや
781デフォルトの名無しさん:2006/02/25(土) 18:24:52
(・∀・)ニヤニヤ <万能じゃないっしょ

>>778
782デフォルトの名無しさん:2006/02/25(土) 21:34:57
メモリリークで盛り上がれる幸せなスレがあると聞いてすっとんできますた。
783デフォルトの名無しさん:2006/02/25(土) 21:54:33
Boehmコワイ
784デフォルトの名無しさん:2006/02/25(土) 22:21:22
mallocした領域をfreeせずにexitするのは危険でしょうか? ニヤニヤ
785デフォルトの名無しさん:2006/02/25(土) 22:35:30
exitするなら。ニヤニヤ
786デフォルトの名無しさん:2006/02/25(土) 23:02:18
妖怪人間Boehme
787デフォルトの名無しさん:2006/02/25(土) 23:26:35
メールをリークしたのは誰ですか?
788デフォルトの名無しさん:2006/02/25(土) 23:41:41
どうも UNIX 系のスレは下らない脱線するな。
789デフォルトの名無しさん:2006/02/25(土) 23:48:27
Windows系はオコサマがマジ切れして荒れるけどな。

Macは・・・人いるのか?
790デフォルトの名無しさん:2006/02/25(土) 23:55:38
OS 絡みのスレはどこもそんなんナノか。
791デフォルトの名無しさん:2006/02/25(土) 23:57:58
OSは宗教だからな。
792デフォルトの名無しさん:2006/02/26(日) 00:21:30
フォースを使え、リーク
793デフォルトの名無しさん:2006/02/26(日) 02:08:06
>>792
おしいな。forkを使えならよかったのに。
794デフォルトの名無しさん:2006/02/26(日) 02:45:45
fork be with you
795デフォルトの名無しさん:2006/03/02(木) 01:08:36
we love fork.
796デフォルトの名無しさん:2006/03/02(木) 21:15:51
プロセスのアドレス空間内で、あるアドレスを指し示す変数の型は何にするのが
一番良いでしょうか? caddr_t を使っているのをよく見ますが、types.h には
caddr_t は "core address" と書いてありました。core address ってどういう
意味でしょうか?

こういった、型の意味を探すのに皆さんどうされてますか?
POSIX や ANSI の規格表は必携?
797デフォルトの名無しさん:2006/03/02(木) 22:10:52
C99にもPOSIXにもcaddr_tなんて型は無い
798デフォルトの名無しさん:2006/03/02(木) 22:37:18
>>796
POSIX/SUS的には、そういうのは void *
799デフォルトの名無しさん:2006/03/02(木) 23:35:52
>>797,798
どうもありがとう!
800デフォルトの名無しさん:2006/03/03(金) 06:50:13
>>799
納得するなよw
> core address
には, 答えてもらってねぇぞ...
801デフォルトの名無しさん:2006/03/03(金) 11:07:08
coreってメモリのことでしょ普通
802デフォルトの名無しさん:2006/03/03(金) 11:57:29
コアメモリでググれ。
803デフォルトの名無しさん:2006/03/03(金) 12:04:49
コンピュータ用語はひとまずFOLDOC見ろよ。
http://burks.bton.ac.uk/burks/foldoc/57/25.htm
804デフォルトの名無しさん:2006/03/03(金) 12:08:05
はじまった、はじまったw
805デフォルトの名無しさん:2006/03/06(月) 07:00:42
プロセスIDっていつリサイクルはじまるの?
806デフォルトの名無しさん:2006/03/06(月) 07:12:32
うちの地域は火曜日
807デフォルトの名無しさん:2006/03/06(月) 10:27:23
>>805
pid_t find_pid() {
 do {
  ++pid;
  if (pid >= MAX_PID) pid = 0;
 } while (空いてるのが見つかるまで)
}
808デフォルトの名無しさん:2006/03/06(月) 21:55:29
>>807
新しいPIDを作るところはカーネル内で一箇所だけなんで、
それだけ別関数になってたりはあまりしない。
おまけにナイーブすぎで、いまどきそんなカーネルは存在しない。
809デフォルトの名無しさん:2006/03/06(月) 22:44:11
>>808
君のレスは情報ゼロに等しいな。
810デフォルトの名無しさん:2006/03/06(月) 23:48:54
809の情報の定義は特異だな。
811デフォルトの名無しさん:2006/03/07(火) 00:16:16
むしろマイナスと言うべきだわな。
812デフォルトの名無しさん:2006/03/07(火) 09:09:09
1個の関数になってるかどうかはともかく、
ぶっちゃけ>>807みたいな感じなんじゃないの?
OSによっては連続したidを使わずにスクランブルするのもあるけど。

うちのOSだと使ってるpidはハッシュ表に登録されてて、
それで空いてるかどうか判断してるようでつ。
813デフォルトの名無しさん:2006/03/07(火) 09:59:55
>>811
煽るのを止めはせんが
情報量自体に真偽は関係なく、情報量にマイナスというものは無い
814デフォルトの名無しさん:2006/03/07(火) 11:23:06
>>808 は負の情報量だな。定義は俺
815デフォルトの名無しさん:2006/03/07(火) 11:40:05
>>813
あるよ(w
減ればマイナスだから、見掛け情報量として扱う。

あ、もしかして負の数なんてものはない、-3匹の羊ってなんだよ、って人?
816デフォルトの名無しさん:2006/03/07(火) 11:45:20
はじまった、はじまったw
817デフォルトの名無しさん:2006/03/07(火) 12:44:22
>>815
徹夜明けの眠気覚ましにとしてつきあっちゃる

情報量と真偽は無関係なんだよ
つまり、偽のbitが >0 存在することになる。

問題は真のbitと偽のbitを相殺させるという
ポンコツな処理にある
818デフォルトの名無しさん:2006/03/07(火) 12:46:10
( ゚д゚)ポカン
819デフォルトの名無しさん:2006/03/08(水) 03:36:56
情報量の定義を見れば一発でわかるんだけどな

事象 E が確率 P(E) で起こるとき、E が起こったときに受け取る情報量は
  I(E) = - log P(E)

これはどうやっても負にならん
820デフォルトの名無しさん:2006/03/08(水) 08:26:59
スク水着て脱糞でもしとけ
821デフォルトの名無しさん:2006/03/08(水) 10:10:25
何この流れww
822デフォルトの名無しさん:2006/03/08(水) 22:39:13
懐かしいなシャノン
823デフォルトの名無しさん:2006/03/09(木) 12:07:21
よお、ノイマン
824デフォルトの名無しさん:2006/03/09(木) 19:03:05
stat関数で取得したuidとgidからユーザ名とグループ名を取得するにはどうしたらいいですか?
825デフォルトの名無しさん:2006/03/09(木) 19:14:58
getpwuid, getgrgid あたりかな
826デフォルトの名無しさん:2006/03/09(木) 19:18:31
>>825
ありがとうございます。
827デフォルトの名無しさん:2006/03/11(土) 19:10:54
ブロックデバイスってどうやって読み書きするんですか?
828デフォルトの名無しさん:2006/03/11(土) 19:18:39
readとwriteで
829デフォルトの名無しさん:2006/03/12(日) 01:57:00
>>827
File system介さずってこと?
一般的には関連づけられたraw character deviceを読み書き。
UNIXenによって違うので、環境書くか、適当な板で。
830デフォルトの名無しさん:2006/03/12(日) 16:08:33
Suse Linux 10でgccを使ってプログラムを作っています。
もっとも確実なファイルのロックの方法を教えてください。
831デフォルトの名無しさん:2006/03/12(日) 16:18:55
832デフォルトの名無しさん:2006/03/12(日) 18:57:28
UNIXに確実なファイルロックは存在しません
833デフォルトの名無しさん:2006/03/12(日) 23:19:28
fcntl() がとりあえず最良の方法なのでは?
一応NFS越しでも掛かるし。
834デフォルトの名無しさん:2006/03/12(日) 23:45:57
>>831に答えはありますから。
835デフォルトの名無しさん:2006/03/13(月) 00:23:02
30秒ごとに実行してほしい関数と、7秒ごとに実行してほしい関数が
あるんですけれど、どうやってタイマー関連の設定をすればいいのか
教えてもらえませんか?
836デフォルトの名無しさん:2006/03/13(月) 00:24:59
int i;
while(i++){
sleep(1);
if( i % 7 == 0 ) func7sec();
if( i % 30 == 0 ) func30sec();
}
837デフォルトの名無しさん:2006/03/13(月) 00:30:22
>>835
setitimer() 使うといいと思う。
838デフォルトの名無しさん:2006/03/13(月) 00:32:01
>>836
それではずれて行くと思うが?
839デフォルトの名無しさん:2006/03/13(月) 00:58:42
>>838
基本的な考え方を書いただけだろ?
while(i++){sleep(1);
のところを適当に工夫すりゃいいんじゃね?

iがたまたま初期値0だったら動かないな。
どうでもいいけど。
840デフォルトの名無しさん:2006/03/13(月) 01:00:06
>836,837
やはり1秒ごとに発生させて、経過秒数を自分でカウントして
あげないといけないのですか?
841デフォルトの名無しさん:2006/03/13(月) 01:37:41
pthreadを二つ動かして、それぞれselect(2)でタイムアウト待ちとか。
842デフォルトの名無しさん:2006/03/13(月) 01:42:52
Windowsでいうところの、SetWaitableTimerみたいなシステムコールは無いようですので、
自分であと何秒待つべきかを管理して、一番小さいものをSleepに渡すことにします。
843デフォルトの名無しさん:2006/03/13(月) 02:23:42
>>840
ああそうか。ふたつか。そうだなあ。そうするしかないかなあやっぱ。
844デフォルトの名無しさん:2006/03/13(月) 03:51:50
このスレってレベル低いな
845デフォルトの名無しさん:2006/03/13(月) 09:47:05
ゃぁ
846デフォルトの名無しさん:2006/03/13(月) 10:23:47
この板でそこそこレベルのあるスレの方が珍しいんだからまあいいじゃないか
847デフォルトの名無しさん:2006/03/13(月) 10:57:44
ちんぽ
848デフォルトの名無しさん:2006/03/15(水) 20:49:36
質問です。
linux上、c言語で文字列からFILE*を作ることは出来るのでしょうか。
c++のstringstreamのようなイメージです。
具体的には以下のような操作を考えています。

char str = "hoge";
FILE* f = unknown_func(str, "r");
int i = fgetc(f);

よろしくお願いします。
849デフォルトの名無しさん:2006/03/15(水) 22:16:58
linux(glibc)にはfmemopen()という関数があります
ただしポータブルではありませんのでlinux以外の環境では使えません
850848:2006/03/15(水) 22:52:57
有り難うございます、期待通りの挙動を示してくれました。
ごく私的な用で使う予定なので、移植性に関して当面は問題無さそうです。
851デフォルトの名無しさん:2006/03/16(木) 14:54:40
>>849
へぇ〜、最近のglibcはそんな関数を提供してるのか。参考になったよ。
852デフォルトの名無しさん:2006/03/17(金) 03:27:04
知らないで似たようなもん自分で作っちゃったよ。とほほ。
TextSS のWindowsXP(Professional)64bit化おながいします

もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?

そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
854デフォルトの名無しさん:2006/03/18(土) 21:02:16
最近はレスを通知してくれる2chブラウザがあるのか
855デフォルトの名無しさん:2006/03/18(土) 22:34:29
すごいな
見るスレ全部にこのマルチコピペがあるぞ
856デフォルトの名無しさん:2006/03/19(日) 00:36:17
ほんとだ。SPAMだなこりゃ。
857デフォルトの名無しさん:2006/03/19(日) 01:38:00
ていうか、書き込んだバカは
返答があるかどうか、全てのスレをチェックしているのだろうか?
858デフォルトの名無しさん:2006/03/22(水) 12:40:28
プログラミング知識ゼロです。
質問なんですが、UNIXで開発されたCshの拡張子がついたファイルを
windowsで実行させるにはどうしたらよいのですか?
859デフォルトの名無しさん:2006/03/22(水) 12:43:25
とりあえず、SFUでもいれとけ
ttp://www.microsoft.com/japan/windows/sfu/
860デフォルトの名無しさん:2006/03/22(水) 12:46:37
とりあえず、Cygwinでもいれとけ
http://www.cygwin.com/setup.exe
861デフォルトの名無しさん:2006/03/22(水) 12:56:12
ありがとうございます。
862デフォルトの名無しさん:2006/03/22(水) 13:54:01
>>858
cygwin入れろ
863デフォルトの名無しさん:2006/03/25(土) 03:39:25
とりあえず、GnuWin32でもいれとけ
ttp://gnuwin32.sourceforge.net/
864デフォルトの名無しさん:2006/03/25(土) 09:08:56
ここの連中はしつこいなw
865デフォルトの名無しさん:2006/03/25(土) 17:28:59
ここのスレに誘導されて来ました.ライブラリ関数の質問です.

スレッドが費やした CPU 時間を得るにはどうすればよいですか?
sys/times.h の times() だとプロセス時間になるので困ってます.
866デフォルトの名無しさん:2006/03/25(土) 17:35:25
OSとスレッドライブラリの名称とバージョン
867865:2006/03/25(土) 17:50:53
linux 上の posix thread でプログラミングしています.

できるだけバージョンやベンダーに依存しない方法があれば良いのですが...
868デフォルトの名無しさん:2006/03/25(土) 19:04:40
RedHatでpopt.hを使いたいのですが、
poptSetOtherOptionHelp(optCon, "[OPTION...] <bar>");
のようにすると
--helpでUsage: foo [OPTION...] <bar>
と表示されるものの、
--usageでUsage: foo [-a A] [-b B] [OPTION...] <bar>
のようになってしまいます。
--usageの時にだけ[OPTION...]を外す方法はないですか?
869デフォルトの名無しさん:2006/03/25(土) 19:12:17
ありません
870868:2006/03/25(土) 19:41:46
>>869
そこを何とか。
最後に入力ファイル名を渡すようなプログラムって、
poptは使ったりしないもの?
871デフォルトの名無しさん:2006/03/25(土) 21:33:01
pthread_getcpuclockid
872デフォルトの名無しさん:2006/03/25(土) 21:51:53
>>870
何とかって無いものは無い
poptを改造して開発元にパッチ送ればいいんじゃないの
873デフォルトの名無しさん:2006/03/25(土) 23:22:09
パッチを送ると拍手喝采だよな
パッチパッチ
874865:2006/03/26(日) 01:12:54
>>871

ありがとう!
875デフォルトの名無しさん:2006/03/28(火) 16:51:17
ディレクトリ内のファイルの一覧の取得方法を教えてください。
opendirなどで検索するとphpのページはヒットするのですが、Cでの取得方法がわかりません。
876デフォルトの名無しさん:2006/03/28(火) 17:00:33
>>875
man opendir
877デフォルトの名無しさん:2006/03/28(火) 17:01:58
>>875
PHPでのサンプルを見ればそのままCにも応用できない?
うちのOSでは「man opendir」すると、そのものズバリのサンプルが書
かれてる。
878デフォルトの名無しさん:2006/03/28(火) 17:22:16
879デフォルトの名無しさん:2006/03/29(水) 18:58:51
プロセスの一覧の取得と各プロセスの所有者を取得する方法を教えてください
880デフォルトの名無しさん:2006/03/29(水) 19:36:10
>>879
$ man ps
881デフォルトの名無しさん:2006/03/30(木) 18:49:47
1秒以下でスリープするさせる方法はありませんか?
882デフォルトの名無しさん:2006/03/30(木) 18:57:12
>>881
nsleepがあるかもしれないな
883デフォルトの名無しさん:2006/03/30(木) 20:08:56
man usleep
884デフォルトの名無しさん:2006/03/30(木) 21:04:28
sleep(0);
885デフォルトの名無しさん:2006/03/30(木) 23:20:29
今どきは nanosleep じゃねえかな
これは POSIX だし
886デフォルトの名無しさん:2006/03/31(金) 00:48:58
対話的に実行するコンソールプログラムの出力をファイルに取り込むことは出来るでしょうか?
./cmd | tee cmd.log
だと表示もおかしくログもうまく取れません。
887デフォルトの名無しさん:2006/03/31(金) 01:14:42
>>886
man script
888デフォルトの名無しさん:2006/03/31(金) 13:35:47
>>886
つ[xwd]
889デフォルトの名無しさん:2006/03/31(金) 21:37:56
ま、お望みの物は script だろうけど、ttyrec というのもある。
890デフォルトの名無しさん:2006/04/10(月) 11:20:47
CPUの数を取得する方法を教えてください
891デフォルトの名無しさん:2006/04/10(月) 12:10:32
OSによる
892デフォルトの名無しさん:2006/04/10(月) 20:40:25
>>890
printf ("CPUの数は?\n");
int cpu_num;
scanf ("%d", &cpu_num);
893デフォルトの名無しさん:2006/04/10(月) 22:15:43
int mib[2], ncpu;
size_t len;
mib[0] = CTL_HW;
mib[1] = HW_NCPU;
len = sizeof(ncpu);
sysctl(mib, 2, &ncpu, &len, NULL, 0);
printf("CPUは%d個\n", ncpu);

どのOSの例かは教えてあげないんだからっ
894デフォルトの名無しさん:2006/04/10(月) 22:27:40
mib つーのが、いつ見ても変な感じ。
895デフォルトの名無しさん:2006/04/11(火) 06:48:50
Men In Black?w
896デフォルトの名無しさん:2006/04/13(木) 15:51:24
学校でUNIX起動するとX window が起動してコンソールだけ出るんですが、
マウスでKtermを出そうとして透明の枠をクリックすると消えてしまい
ウインドウが出てくれません。
どうすればいいでしょうか
897デフォルトの名無しさん:2006/04/13(木) 17:33:09
学校できけ
898デフォルトの名無しさん:2006/04/13(木) 22:14:00
>>896
>透明の枠

これが分からん。透明の枠って何の事?
コマンドラインで kterm と打つのじゃダメなんかいな。
899デフォルトの名無しさん:2006/04/13(木) 22:34:22
>>898
スレ違い。
900デフォルトの名無しさん:2006/04/13(木) 22:40:38
え、俺?!

そっか、すまん。
901デフォルトの名無しさん:2006/04/14(金) 02:43:45
すんません学校で誰も教えてくれないもんで・・・
902デフォルトの名無しさん:2006/04/14(金) 03:18:08
man 透明の枠
903デフォルトの名無しさん:2006/04/14(金) 11:10:58
>>898
kterm & と打つと、田 (←実際には3x3)のような中が透明な枠が出て
ウィンドウの位置を指定するらしい状態にはなるんですが、
そこでボタンを押すと枠が消えるだけでKtermのウィンドウは出ないんです。
904デフォルトの名無しさん:2006/04/14(金) 11:17:01
>>903
プログラミングの話じゃないし、おまいの使ってる環境依存の話だから、
管理者か、周囲の詳しいやつに聞かないと解決しないよ。
905デフォルトの名無しさん:2006/04/14(金) 11:52:36
>>900=898?
喪前が相手にするから居座ってるジャマイカ。
906デフォルトの名無しさん:2006/04/14(金) 22:05:28
嫌なら読まなきゃ良いんジャマイカ?
907デフォルトの名無しさん:2006/04/15(土) 04:15:04
低能キタ-
908デフォルトの名無しさん:2006/04/15(土) 11:23:16
こんにちわ。2点、よろしければ教えてください。
HP-UX & aCC で作業をしてます。

1) 以下のようなことは出来ないのでしょうか。new の箇所がコンパイル時にエラーになります。

 MyClass** a;
 a = new (MyClass*)[ 8 ];

2) コンパイル時に以下のような箇所でエスケープシーケンスがどうとか怒られます。
  どうやら「ソ」に反応しているようなのですが、回避の方法はあるでしょうか。

 printf( "[%08d] ソケットがどうとか\n", code );

これまでほぼ Win 上での作業ばかりでしたが特に問題なかったような...
ボケをかましているだけなら良いのですが、何か勘違いをしているでしょうか。
ご教示頂ければ幸いです。
909デフォルトの名無しさん:2006/04/15(土) 11:31:20
>>908
手元に環境ないから適当だけど・・・

typedef MyClass* MyClassPtr;
とかしておいて、
a = new MyClassPtr[8];
とかやったらどうだろうね。

HP-UXはShift-JISじゃないっけ?
「ソ」の2バイト目がバックスラッシュじゃね?
910デフォルトの名無しさん:2006/04/15(土) 11:40:37
>>908
(1) カッコいらない
(2) Shift_JIS だと「ソ」の2バイト目が \
911デフォルトの名無しさん:2006/04/15(土) 12:36:31
質問させてください、
HP全取得ツールみたいのを作りたいんですけど・・・
cURL で、ディレクトリの内容を再帰的に取得する方法ってありますか?
こういうのは、やっぱり wget なんでしょうか?

もしこういうことを実現するのに「〜使えば楽勝だろ」みたいなのが
あれば教えてください。
912デフォルトの名無しさん:2006/04/15(土) 14:36:38
wget -r http://example.com で終わる話
913908:2006/04/15(土) 17:58:31
こんにちわ。
ご返答ありがとうございました。

1) typedef と () 外し、試してみます。
  ただ、() はなくてもエラーになってたような...

2) ということは「そケット」などと書かないとダメなのですね。
  Solaris で問題なかったのは EUC だったからか。

UNIX って奥が深いです。
これまでの経験からは予想の出来ない問題がたくさんあって刺激的でおもしろいですね。
まあただの経験不足なのですが。(汗
914デフォルトの名無しさん:2006/04/15(土) 18:02:21
>>913
ソ\ケット
915908:2006/04/15(土) 19:14:26
こんにちわ。

>ソ\ケット

ぽん。なんで思いつかなかったのだろう。
ありがとうございました。

916デフォルトの名無しさん:2006/04/17(月) 07:01:28
つ ンケット
917デフォルトの名無しさん:2006/04/17(月) 16:50:02
商用コンパイラで文字列リテラルがlocale対応してないの? 恐ろしい…

918デフォルトの名無しさん:2006/04/17(月) 16:55:24
それって同じソースコードでもコンパイル時のlocaleで動きを変えろってこと?
919デフォルトの名無しさん:2006/04/17(月) 17:58:35
日付フォーマットとか地域毎に認識変えろってことじゃ
920デフォルトの名無しさん:2006/04/17(月) 18:09:48
文字列リテラルって意味わかる?
921デフォルトの名無しさん:2006/04/17(月) 22:58:37
>>918
gccはそうだよ。
922908:2006/04/17(月) 23:12:13
こんにちわ。

結果です。

1) () 外しで OK
2) 「ソ\ケット」で OK

() は境界が分かりづらいところに無意識につける癖が災いしてました。
ポインタのポインタのポインタなんて初めて使って余計混乱しちゃってましたし、
しゅぎょーしてきます...

>つ ンケット

今度やってみます。w
923デフォルトの名無しさん:2006/04/18(火) 08:42:18
>>921
configure時に--enable-c-mbcharかなんかつけてビルドしないとダメなんでしょ?
ちゃんと動くのかどうか知らないけど。
924デフォルトの名無しさん:2006/04/18(火) 10:46:41
>>923
gcc 3.4 からは -finput-charset で実行時に指定できる。
925デフォルトの名無しさん:2006/04/18(火) 10:51:52
localeと関係ないじゃんw
926デフォルトの名無しさん:2006/04/18(火) 11:04:52
このオプションで指定できるエンコーディングのデフォルトが UTF-8 で、
locale でも上書きできるとなっている。
927デフォルトの名無しさん:2006/04/18(火) 11:19:43
>>926
ほんとだ知らんかった!
928デフォルトの名無しさん:2006/04/18(火) 11:47:22
なんか微妙にかみあってないような。

gcc 3.3 以前だとデフォルトではマルチバイト文字を認識せず、configure 時
に --enable-c-mbchar を指定して gcc を作成する必要がある。ソースコード
と locale の文字セットが違う場合、env LANG=... gcc ... のようにする。

gcc 3.4 以降だと iconv が使える場合デフォルトで locale に応じたマルチバ
イト文字を認識する。ソースコードと locale の文字セットが違う場合、
-finput-charset でオーバーライドできる。
929デフォルトの名無しさん:2006/04/18(火) 12:37:13
昔のは日本語オンリーね。
930デフォルトの名無しさん:2006/04/18(火) 15:15:18
C-SJIS とかのこと言ってる?
931デフォルトの名無しさん:2006/04/18(火) 15:32:54
932デフォルトの名無しさん:2006/04/18(火) 15:38:53
日本語以外もサポートしてるじゃん
933デフォルトの名無しさん:2006/04/18(火) 15:43:16
if (literal_codeset == NULL || strlen (literal_codeset) <= 1)
{
/* This must be the "C" locale or unknown locale -- fall thru */
}

/* This must be the "C" locale or unknown locale. */
return mbtowc (pwc, s, n);

mbtowc()任せでlocale次第ってことですわね。
934デフォルトの名無しさん:2006/04/19(水) 00:41:31
localeなんて欠陥システムは無視無視
935デフォルトの名無しさん:2006/04/19(水) 04:13:27
C言語、GNU readline の質問です。
デフォルトで有効になっているカレントディレクトリのファイル名補完機能を無効にし、
コマンドラインからの入力なしの状態でTabキーを押したらa_func b_func c_func と表示させ、
aを入力した状態でTabキーを押したらa_funcと補完させるプログラムを作りたいです。
サンプルが欲しいです
936デフォルトの名無しさん:2006/04/19(水) 08:51:06
Readlineのソースに入っているexamples/rl-fgets.cを読め。
FGETS_COMMAND_FILEから候補を読むところを、
a_func b_func c_funcで候補リストを作成。
937935(GNU readline の質問):2006/04/19(水) 10:50:05
>>936
ありがとうございます。
さっそくやってみます。
938デフォルトの名無しさん:2006/04/22(土) 19:24:09
こんど仕事でhp-uxのプログラム作らなきゃいけないのですが、
どこかシステムコールとかを詳しく解説してるとこってないでしょうか?
WindowsのAPI関数みたいなライブラリってあるのでしょうか?
939デフォルトの名無しさん:2006/04/22(土) 19:37:25
>>938
UnixのシステムコールはLinux関係のサイトに詳しい。
但し、HP-UXは独特なので、それらはHPのHP・・・じゃなくてサイトでしか入手できないかもしれない。
尚、WindowsAPIほど潤沢にAPIが用意されているわけではないので、(特にグラフィックは)何を使うか
事前に充分検討しておくことをお勧めしておく。
940デフォルトの名無しさん:2006/04/22(土) 23:33:09
>>938
ページくらいちゃんと見れやれよ。
http://h50146.www5.hp.com/doc/manual/

>>939
生半可な知識でいい加減な事言うなよ。
941デフォルトの名無しさん:2006/04/23(日) 00:28:12
HPのHPに泣いた
942939:2006/04/23(日) 00:51:57
>>940
えーと、なんか間違ってたかな?
943デフォルトの名無しさん:2006/04/23(日) 12:54:20
API云々のとこは変でしょ
あと「潤沢」てのは適切でないな
944デフォルトの名無しさん:2006/04/24(月) 01:04:19
>>554
それも含めて子供を生んだ後の問題なんじゃね?
945デフォルトの名無しさん:2006/04/24(月) 06:47:45
そうなの?
946デフォルトの名無しさん:2006/04/26(水) 02:15:22
POSIX共有メモリで4層ぐらいネストした構造体扱おうと思っているのですが、
この時、可変長な値は予め最大サイズを決めて確保するべきなのでしょうか。
947デフォルトの名無しさん:2006/04/26(水) 02:19:42
ばこっと確保した共有メモリの中をヒープとして自前で管理すりゃいんじゃね?
948デフォルトの名無しさん:2006/04/28(金) 01:07:34
freebsd4.11をつかっているんですが、
Cでcpu使用率を取得するプログラムを書く場合
どの関数が必要になるんでしょうか
vmstatのソースをみていましたが、いまいちわかりません。
どうもcur構造体のcp_time要素に値が格納されているようなのですが・・・

ソースでいうと
1.このあたりとか
mysysctl("kern.cp_time", &cur.cp_time, &size, NULL, 0);
if (size != sizeof(cur.cp_time))
errx(1, "cp_time size mismatch");

2.ひょっとするとこのあたりではないかとにらんでいますが
static kvm_t *kd;

ヒントだけでもいいので、何かご存知の方・・・
949デフォルトの名無しさん:2006/04/28(金) 01:08:38
はりわすれました。vmstatのソースです
http://gobsd.com/code/freebsd/usr.bin/vmstat/vmstat.c
950デフォルトの名無しさん:2006/04/28(金) 01:17:46
>>948
#include <nlist.h>
951デフォルトの名無しさん:2006/04/28(金) 04:51:02
なんでこのスレは質問を強要しているのですか?
952デフォルトの名無しさん:2006/04/28(金) 06:14:37
>>948
% sysctl kern.cp_time; sleep 5; sysctl kern.cp_time
kern.cp_time: 51464 1204 77516 4733 1238731
kern.cp_time: 51502 1204 77531 4733 1238743
この増分は 38 0 15 0 12 となり、合計 65 のうち CP_IDLE (sys/resource.h)
は 12 だから 1 - (12 / 65) = 0.815... で CPU 利用率は 82% になる。
953デフォルトの名無しさん:2006/04/28(金) 12:55:29
>>951
じゃあ次回からは「質問ある?」で
954デフォルトの名無しさん:2006/04/28(金) 22:46:49
それだと質問あるかないか、YES,NOのレスが続くだけのスレになるだろーが
955デフォルトの名無しさん:2006/04/28(金) 22:58:59
無駄な「だろーが」入りました!
956948:2006/04/29(土) 01:18:09
>>952
返信ありがとうございます。
ヒント、というか、そのものズバリを教えていただけるとは思いませんでした。
うーむ、mysysctlはsysctlを使うのと同じものだったとわ・・
ありがとうございました^!
957デフォルトの名無しさん:2006/05/01(月) 20:37:06
UNIX系の人って、IDE何使ってるの?
958デフォルトの名無しさん:2006/05/01(月) 20:46:18
emacs
959デフォルトの名無しさん:2006/05/01(月) 21:13:18
azumacs
960デフォルトの名無しさん:2006/05/02(火) 21:28:02
カイヤ
961デフォルトの名無しさん:2006/05/02(火) 23:55:25
POSIX共有メモリで構造体そのまんまで扱う時って定数構造体宣言して
mmapでよかったっけ?

あと、ファイルからデータ読み込む時
mmapでアタッチするのとopenのオプションにO_DIRECT付与するの
どっちが速いのでしょうか
962デフォルトの名無しさん:2006/05/03(水) 00:01:10
どっちが速いかなどということは決まっていない
実測しろ
963デフォルトの名無しさん:2006/05/03(水) 07:49:54
POSIX共有メモリって普通IPCのshm*(2)のことだけどな。
旧称System V共有メモリ
964デフォルトの名無しさん:2006/05/03(水) 07:51:44
O_DIRECTって意味分かってないだろ。>>961
ちゃんとマニュアル読めよ。
965デフォルトの名無しさん:2006/05/15(月) 02:46:37
mmapされたシェアードメモリを複数プロセスで
read/writeする必要があるんですが,ロックに関しては
どうするのが安全/高速ですか?
ロックに関してはアドバイザリーロックで問題ありません.

OSはFreeBSDもしくはLinuxです.
966デフォルトの名無しさん:2006/05/15(月) 10:01:15
>>965
一般的にはセマフォ。
967デフォルトの名無しさん:2006/05/15(月) 11:41:26
>>965
mlockでいいんじゃね?
968デフォルトの名無しさん:2006/05/15(月) 19:08:01
mlockは排他制御には使えないとおもうがどうか
969デフォルトの名無しさん:2006/05/15(月) 19:17:32
無理すぎ
970965:2006/05/15(月) 23:22:39
>>966
ありがとうございます.調べてみたところ,

名前付きセマフォ: カーネル内にロック情報を保持
メモリベースセマフォ: プロセス共通のSharedMemory内にロック情報を保持
SysVセマフォ: カーネル内にロック情報を保持
pthread_mutex: プロセス共通のSharedMemory内にロック情報を保持
pthread_rwlock: プロセス共通のSharedMemory内にロック情報を保持

って感じでになってて,プロセスの異常終了時のロックの
解放に関してはそれぞれ特徴があるみたいですね.

ロック期間中に変更したデータの整合性に関しては
プログラマ側に任されているみたいで,安全性に関しては
等価な印象です(間違ってたら指摘お願いします).

追加質問なのですが,FreeBSDもLinuxもセマフォに関しては
扱える上限数がカーネル設定で固定されているようです.
これを考えるとメモリアル限り自由にロックの粒度を
細かくできるmutexの方が使いやすいと思うんですが,
どうなんでしょう?
971965:2006/05/15(月) 23:30:12
>>967
今回の目的は確保したSharedMemoryを破壊しないように
同期のLockを行いたいというものでした.

mlock()は確保したメモリをswapさせないようにする関数なので,
今回の用途とは少し違うかと思います.

すいません.質問の仕方が悪かったみたいです
972デフォルトの名無しさん:2006/05/15(月) 23:40:16
ディレクトリ一覧を再帰的に取得する方法について質問です。
manのftsを見ながら即興で組んでみたのですが、
(変数名適当です・・・)
以下のプログラムだと、/usr/以下の全ディレクトリ以外に
ファイル名も出力してしまいます。
ディレクトリ名のみを出力する方法はないでしょうか・・・

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fts.h>

main(){
FTS *dir;
FTSENT *fts;
char *path[2]={"/usr", NULL};
if((dir=fts_open(path,FTS_PHYSICAL|FTS_NOCHDIR,NULL))==NULL){
perror("opendir error");
exit(-1);
}

for(fts=fts_read(dir);fts!=NULL;fts=fts_read(dir)){
printf("%s\n",fts->fts_path);
}
close(dir);
return 0;

}
973デフォルトの名無しさん:2006/05/15(月) 23:47:07
>>972
fts_statp を見ろ
974デフォルトの名無しさん:2006/05/15(月) 23:50:07
FTS_Fでも抑制したら。
975デフォルトの名無しさん:2006/05/16(火) 11:44:58
>>972
if (fts->fts_info == FTS_D)
  printf("%s\n",fts->fts_path);
976デフォルトの名無しさん:2006/05/17(水) 00:34:59
>>972
>>973
>>974

なるほど、ヘッダファイルでFTS_Dを1としてdefineしていたんですね・・・
今までそれがわからずにcoreを吐かせまくってましたが、
おかげさまで狙い通りの値がとれるようになりました。
ttp://mirror.sg.depaul.edu/pub/OpenBSD/src/include/fts.h
ありがとうございました!

#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fts.h>
main(){
FTS *dir;
FTSENT *fts;
char *path[2]={"/usr", NULL};
if((dir=fts_open(path,FTS_PHYSICAL,NULL))==NULL){
perror("opendir error");
exit(-1);
}
for(fts=fts_read(dir);fts!=NULL;fts=fts_read(dir)){
/* FTS_D is defined as 1 in fts.h */
if(fts->fts_info==FTS_D){
printf("%s\n",fts->fts_path);
}
}
fts_close(dir);
return 0;
}
977デフォルトの名無しさん:2006/05/17(水) 14:44:56
>>976
1 だとか 2 だとかコメントに書かないほうが良いよ。
別の OS で FTS_D が 2 だったら、コメントも変えるの?
978デフォルトの名無しさん:2006/05/17(水) 16:02:12
>>970
Linux なら /proc/sys/kernel/sem で拡張できるよ
979970:2006/05/17(水) 17:06:40
>>978
>Linux なら /proc/sys/kernel/sem で拡張できるよ

情報ありがとうございます.FreeBSDならkern.ipc.semm*
あたりで変更できますね.
FreeBSDもLinuxも内部機構を知らないのでなんなのですが,
OS側で数を制限しているからには数を増やすとそれなりに
パフォーマンスが落ちると思うんですね.

mutexの場合はロックの粒度に応じてthread_mutex_tの変数を
プロセス共通のシェアードメモリに必要なだけ確保すればいい
だけなので,セマフォより使いやすいのかなと思ったんです.
980970:2006/05/17(水) 17:31:46
ところで次のスレはこの板に作っちゃっていいんでしょうか?
Unix板でやれという意見もあるようですが.
981デフォルトの名無しさん:2006/05/17(水) 17:48:45
UNIXのプログラムの質問をするスレなんだからプログラム板だろ
982デフォルトの名無しさん:2006/05/17(水) 17:49:08
>>979
pthread_mutexがprocessを越えても有効かどうかは環境依存。
983970:2006/05/17(水) 21:05:15
>>982
>pthread_mutexがprocessを越えても有効かどうかは環境依存

なるほど.情報ありがとうございます.調べてみたところ
確かにその通りでした.
PTHREAD_PROCESS_SHARED
はLinuxではNativeでサポート,FreeBSDは未サポートなので、
portsでlinuxthreadsを入れる必要があるようですね.

http://www.unobvious.com/bsd/freebsd-threads.html
984デフォルトの名無しさん:2006/05/18(木) 00:19:14
>>981
UNIXのプログラムの質問をするスレなんだからUNIX板だろ
985デフォルトの名無しさん:2006/05/18(木) 00:32:59
>>984
どっちでもいいから、次スレは同じ板に立てるのがデフォルトってことで、プログラム板だろ。
986デフォルトの名無しさん:2006/05/18(木) 00:49:02
UNIXを目の仇にしてるごく一部のおかしな人が暴れてただけだからなあ。
この板で全然いいでしょう。
987デフォルトの名無しさん:2006/05/18(木) 00:58:19
>>984
WIN32APIのスレで同じこと言えよ。
988デフォルトの名無しさん:2006/05/18(木) 01:12:18
両方にあってもいいわけだし。
989デフォルトの名無しさん:2006/05/18(木) 07:19:07
両方あるな
>プログラミング質問すれ Part1 http://pc8.2ch.net/test/read.cgi/unix/1127388574/
990970:2006/05/18(木) 19:01:55
次スレ
UNIXプログラミング質問すれ Part8
http://pc8.2ch.net/test/read.cgi/tech/1147946176/
991デフォルトの名無しさん:2006/05/18(木) 22:05:38
>>990
992デフォルトの名無しさん:2006/05/20(土) 22:01:20
a
993デフォルトの名無しさん:2006/05/20(土) 22:02:14
b
994デフォルトの名無しさん:2006/05/20(土) 22:03:35
c
995デフォルトの名無しさん:2006/05/20(土) 22:04:36
d
996デフォルトの名無しさん:2006/05/20(土) 22:07:28
e
997デフォルトの名無しさん:2006/05/20(土) 22:08:21
f
998デフォルトの名無しさん:2006/05/20(土) 22:09:21
g
999デフォルトの名無しさん:2006/05/20(土) 22:10:12
h
1000デフォルトの名無しさん:2006/05/20(土) 22:11:04
i
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。