トップページ⇒tech
1001コメント254KB

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

レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん2005/09/22(木) 16:16:45
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/
0002デフォルトの名無しさん2005/09/22(木) 16:17:57
>>1
板違いです

UNIX板
http://pc8.2ch.net/unix/
0003デフォルトの名無しさん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/
0004デフォルトの名無しさん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
0005デフォルトの名無しさん2005/09/22(木) 16:19:44
configureが嫌いな人は↓で愚痴を吐きましょう。

【死ね】configure大嫌い【RMS】
http://pc8.2ch.net/test/read.cgi/tech/1114223450/
0006デフォルトの名無しさん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/

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

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

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

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

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

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

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

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

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

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

ハゲワラ
0053デフォルトの名無しさん2005/10/03(月) 03:25:21
>>50はモードを文字列にして表示したいんだと思う
0054デフォルトの名無しさん2005/10/03(月) 03:36:22
>>53
あなたの想像、予想、妄想なんて興味ありませんよ
0055デフォルトの名無しさん2005/10/03(月) 08:20:36
>>54
だから何?
0056デフォルトの名無しさん2005/10/03(月) 08:29:11
>>50
ls.cの中
0057デフォルトの名無しさん2005/10/03(月) 10:00:29
phpやperlからメールを送る方法はわかるのですが、Cの場合、どのようにやればよいのでしょうか?
0058デフォルトの名無しさん2005/10/03(月) 11:19:41
phpやperlと同じ方法でやれ。
0059デフォルトの名無しさん2005/10/03(月) 12:46:05
mailコマンドをpopen()して垂れ流す方法から自分でSMTPを喋る方法まで
まあ好きにしる
0060デフォルトの名無しさん2005/10/03(月) 23:17:11
>>51
chmod(2)
2ってなんですか?
これでは表示されないみたい
0061デフォルトの名無しさん2005/10/03(月) 23:23:37
man 2 chmod
0062デフォルトの名無しさん2005/10/03(月) 23:44:49
ls.cを見ていますがいまいちわかりません。
aclが関係しているんですか?
0063デフォルトの名無しさん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言語の勉強をやり直した方がいい気がする…
0064デフォルトの名無しさん2005/10/04(火) 09:32:49
>>60
man man
0065デフォルトの名無しさん2005/10/04(火) 09:35:28
mite
0066デフォルトの名無しさん2005/10/05(水) 13:27:59
実行ディレクトリの取得方法を教えてください
0067デフォルトの名無しさん2005/10/05(水) 13:32:53
次の質問をどうぞ
0068えすぱぁ2005/10/05(水) 13:41:53
http://www.adl.nii.ac.jp/%7Emoro/unix-programmer/faq-j_2.html#SEC23
0069デフォルトの名無しさん2005/10/05(水) 20:28:42
自分自身の実行ファイルの場所を知りたいのですが教えてください
0070デフォルトの名無しさん2005/10/05(水) 20:37:22
>>69
それは何度も繰り返し質問されている議題です
0071デフォルトの名無しさん2005/10/05(水) 20:50:39
pwd
0072デフォルトの名無しさん2005/10/06(木) 06:57:43
コンソール上でウィンドウを出したいのですがAPIを教えてください
0073デフォルトの名無しさん2005/10/06(木) 07:01:04
newwin() とか subwin とか。
0074デフォルトの名無しさん2005/10/06(木) 07:18:08
system("startx ウィンドウを出すコマンド名 -- :ディスプレイ番号");
0075デフォルトの名無しさん2005/10/06(木) 11:08:09
system関数で&付のコマンドを実行して、そのコマンドが終了する前にプログラムを終了すると、ゾンビプロセスが残ってしまうのですが、
コマンドの終了を待たずに、プログラムを正常に終了するにはどのようにしたらよいのでしょうか?
0076デフォルトの名無しさん2005/10/06(木) 12:54:46
それが原因でゾンビができるとは思えないが。
0077752005/10/06(木) 15:59:39
system関数ではゾンビプロセスは発生しないと考えて良いのでしょうか?
0078デフォルトの名無しさん2005/10/06(木) 16:03:08
出来るが、
> そのコマンドが終了する前にプログラムを終了すると、
これは余分な条件。孫と祖父の関係だからゾンビ関係ない。
0079デフォルトの名無しさん2005/10/06(木) 20:59:26
で、ゾンビが残ると何が問題なんだ?
そのうち消えるのに
0080デフォルトの名無しさん2005/10/06(木) 21:07:20
消える保障なんてねーよ馬鹿
0081デフォルトの名無しさん2005/10/06(木) 21:24:49
消えないならOSの不具合ですね
0082デフォルトの名無しさん2005/10/06(木) 23:27:27
ゾンビとオーファン間違っている奴いねーか?

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

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

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

man terminfo
man ncurses (Linux)
man curses

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

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

と、重いマスタ。
0126デフォルトの名無しさん2005/10/10(月) 19:18:47
「自然の摂理」なんてなんだが仰々しい話は知らないけど、
UNIXに興味がないんだったら用はないはずだと思うけどな。
至って単純な話だと思うんだが。
0127デフォルトの名無しさん2005/10/10(月) 20:01:51
UNIXにしか興味が無い奴とUNIXにも興味がある奴では
仲良くできないよな
0128デフォルトの名無しさん2005/10/10(月) 20:02:26
まあUNIXは不の遺産を使い続けるしかないパラダイムだから
ひねた奴ばっかりです
0129デフォルトの名無しさん2005/10/10(月) 20:06:42
>>127
そんなことはないだろ
0130デフォルトの名無しさん2005/10/10(月) 20:09:12
"不"の遺産??
0131デフォルトの名無しさん2005/10/10(月) 20:10:52
つまりUNIX=不可ってことか。
納得。
0132デフォルトの名無しさん2005/10/10(月) 20:12:39
不動産
0133デフォルトの名無しさん2005/10/10(月) 20:13:36
要するに、UNIXが気に入らない奴がわざわざここまでやってきて荒らしているということだ
0134デフォルトの名無しさん2005/10/10(月) 20:19:03
いまさら何を。
0135デフォルトの名無しさん2005/10/10(月) 20:22:33
まあ、荒れてない方じゃないか?
板的にもApacheとかPerlとかUNIX発のsoftwareに恩恵受けている人が多いから。
これが「Mac OSプログラミング質問スレ」だったら大変なことに…
0136デフォルトの名無しさん2005/10/10(月) 20:28:40
大変な事にはならなかったよ。書き込み無くて消えたから。
0137デフォルトの名無しさん2005/10/10(月) 20:37:38
>>134
つまりキチガイが煽ったり暴れたりしているわけだ
IDがついていればあっさりあぼーんしているところだな
0138デフォルトの名無しさん2005/10/10(月) 23:15:49
>>137
わざわざこっちまで出張して来るなよ。
こういう奴は ID 変えながらカキコするから、ID 制になっても無駄なんだよ。
0139デフォルトの名無しさん2005/10/10(月) 23:28:07
>>138
そういう真性以外には効果があるということでよろしいか?
0140デフォルトの名無しさん2005/10/10(月) 23:38:26
なんで?
0141デフォルトの名無しさん2005/10/10(月) 23:39:09
粘着発生w
0142デフォルトの名無しさん2005/10/10(月) 23:42:18
>>138
出張して来るも何も、
ここのスレが建つときに荒らされそうになって危なかったから、
こっちからわざわざIDスレに出向いているんだが?
0143デフォルトの名無しさん2005/10/11(火) 00:01:41
当スレにスレタイが読める人間がいない件について
0144デフォルトの名無しさん2005/10/11(火) 00:09:06
IDスレから来ました
解決してやるから問題点を述べてください
0145デフォルトの名無しさん2005/10/11(火) 00:09:59
定期的に他スレから荒らしがやってきます
0146デフォルトの名無しさん2005/10/11(火) 00:13:26
>>144
まず最初にお前がうざい。消えろ
0147デフォルトの名無しさん2005/10/11(火) 00:13:50
てへ、ばれちゃいました?
0148デフォルトの名無しさん2005/10/11(火) 00:19:55
>>143
たしかにそろそろアホは放置して
普通の質疑に戻らないといけませんね。
0149デフォルトの名無しさん2005/10/11(火) 06:32:34
ファイルのロックの仕方を教えてください
0150デフォルトの名無しさん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 :)
}
0151デフォルトの名無しさん2005/10/11(火) 21:25:33
んで、放置されちゃった>>148

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

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

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

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

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

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

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

>>177
例外機構は例外が発生しなくてもパフォーマンスに影響するんだが……
0179デフォルトの名無しさん2005/10/14(金) 01:51:02
>>178
最近の gcc なら実行速度に関しては例外が投げられない限りペナルティは無いよ。
コードサイズが増えるのは逃げられないけど。
0180デフォルトの名無しさん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が古いってことなんでしょーか
0181デフォルトの名無しさん2005/10/14(金) 09:29:09
Linuxのmanなんてメンテされとらんだろ
0182デフォルトの名無しさん2005/10/14(金) 18:44:22
すみません、C言語なら俺に聞けスレで誘導されてしまったので
大変申し訳ないのですが、こちらにマルチさせていただきます。

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

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

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

勝手に思っててください。
0197デフォルトの名無しさん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で中断されることはないのです。
0198デフォルトの名無しさん2005/10/15(土) 02:50:16
>>197
> signalで中断されることはないのです。

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

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

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

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

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

読めばあっさり解決することだし。
0213デフォルトの名無しさん2005/10/15(土) 13:56:26
>>212
>>201
0214デフォルトの名無しさん2005/10/15(土) 13:58:23
NGワード:>>201
0215デフォルトの名無しさん2005/10/15(土) 14:06:54
>>213
そんなこと言われなくてもわかってます。
それ以前に、そんな忠告するぐらいだったら最初から黙っとれやカスが。
0216デフォルトの名無しさん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.
0217デフォルトの名無しさん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.
0218デフォルトの名無しさん2005/10/15(土) 15:59:31
>>215
>>215
0219デフォルトの名無しさん2005/10/15(土) 16:04:56
なにしゅーがぜよ
どきやー >>218
あてーは、高知九反田の侠客、鬼龍院政五郎の、鬼政の娘じゃきー、
なめたら、なめたらいかんぜよ!

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

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

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

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

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

UNIXというかperlだが…

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

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

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

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

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

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

単語境界を使うとperlは、

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

だな。\bは行頭、行末も大丈夫。
0257デフォルトの名無しさん2005/10/24(月) 12:22:12
自分自身の現在のメモリ使用量を取得する方法を教えてください。
0258デフォルトの名無しさん2005/10/24(月) 12:37:50
もう何回目だよこの質問。
0259デフォルトの名無しさん2005/10/24(月) 13:58:39
getrusage
0260デフォルトの名無しさん2005/10/24(月) 19:34:48
自分の実行ファイルのパス名を知りたいんですが、
GetModuleFileNameと互換性のあるAPIありませんか?
0261デフォルトの名無しさん2005/10/24(月) 19:37:59
>>260
その関数の仕様は?
いきなり関数名だけ提示されてそれと互換性云々聞かれてもね。
0262デフォルトの名無しさん2005/10/24(月) 19:46:30
>>261
http://www.google.co.jp/search?hl=ja&q=GetModuleFileName&lr=
0263デフォルトの名無しさん2005/10/24(月) 21:10:39
>>260
http://www.adl.nii.ac.jp/%7Emoro/unix-programmer/faq-j_2.html#SEC23
ありません
0264デフォルトの名無しさん2005/10/25(火) 11:27:05
wchar_tを扱える正規表現ライブラリってありませんか?
鬼車はUcharみたいですし…
0265デフォルトの名無しさん2005/10/25(火) 11:43:30
>>261
ググれよ
0266デフォルトの名無しさん2005/10/25(火) 11:50:12
>>265は>>264の間違い
0267デフォルトの名無しさん2005/10/25(火) 12:02:05
>>264
wchar_tは出来損ない
この型を使った時点で負け
0268デフォルトの名無しさん2005/10/25(火) 12:41:56
>>266
間違ってないよ
>>261は回答者の風上にも置けないやつだ
0269デフォルトの名無しさん2005/10/25(火) 12:46:35
キチガイが増えたねえ。

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

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

>>281
275の質問はまともだろ。質問がまともかどうかもわからないのでは、
自分でもろくな質問ができないのだろうな。かわいそうに。
0285ヽ(´ー`)ノ ◆.ogCuANUcE 2005/10/25(火) 18:59:09
f_frsize だな。
0286デフォルトの名無しさん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.

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

(゚Д゚)ハァ?

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


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

変な人…
0296デフォルトの名無しさん2005/10/26(水) 18:36:51
意味不明の即レスするひととか変な人が増えてきたね。
0297デフォルトの名無しさん2005/10/26(水) 18:56:11
Lの字しか知らんバカと指摘されたのが悔しかったんでは
0298デフォルトの名無しさん2005/10/26(水) 19:03:57
ヽ(´ー`)ノ
0299ヽ(´ー`)ノ ◆.ogCuANUcE 2005/10/26(水) 19:10:14
なんか荒れてきたから名無しに戻る(´Д`)
0300デフォルトの名無しさん2005/10/26(水) 19:16:39
自分で荒らし始めたくせに。変な人。
0301デフォルトの名無しさん2005/10/28(金) 00:53:46
>>300
>>300
0302デフォルトの名無しさん2005/10/29(土) 12:41:42
>>300
(゚Д゚)ポカーン
0303デフォルトの名無しさん2005/10/30(日) 08:44:42
このスレは異常な奴が多いな
0304デフォルトの名無しさん2005/10/30(日) 23:01:44
荒らして楽しんでいる狂った奴がいるようだから、
荒れてきたらスルーしとけ。
0305デフォルトの名無しさん2005/11/06(日) 14:28:19
おまいらUNIX板逝けよ
0306デフォルトの名無しさん2005/11/06(日) 15:29:53
>>305
禿同。
このスレといいajaxスレといい、明らかに板違いなくせに
ム板に居ついてる香具師が多すぎ。
0307デフォルトの名無しさん2005/11/06(日) 16:56:51
自演乙
0308デフォルトの名無しさん2005/11/07(月) 16:14:43
メールを送信する方法を教えてください
0309デフォルトの名無しさん2005/11/07(月) 16:18:46
sendmail
0310デフォルトの名無しさん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
0311デフォルトの名無しさん2005/11/08(火) 05:37:32
>>310
それで添付ファイルを付ける方法を僕に教えて!
0312デフォルトの名無しさん2005/11/08(火) 05:50:08
>>311
OEのメッセージのプロパティ/ソースなどを見れ
0313デフォルトの名無しさん2005/11/08(火) 08:31:46
>>311
uuencodeして適当に放り込む。
0314デフォルトの名無しさん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

というエラーが出てコンパイルできません。どのようにしたらよいのでしょうか?
0315デフォルトの名無しさん2005/11/08(火) 14:00:44
__m128を定義しているヘッダを探してinclude。
0316デフォルトの名無しさん2005/11/08(火) 22:07:15
>>314
スレ(板?)違いです。
Linux板のくだ質あたりが適切じゃないかと。
0317デフォルトの名無しさん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
を付けているのですが、他に何かオプションを付ける必要があるのでしょうか?



0318デフォルトの名無しさん2005/11/09(水) 00:58:36
おまえの脳に思考力強化オプションをつける必要があるな
0319デフォルトの名無しさん2005/11/09(水) 01:08:51
コンパイラやらリンカやらが文句を言うたびにここに書き込むのかw
0320デフォルトの名無しさん2005/11/09(水) 02:16:04
そう言わずに、教えてくだすれ
0321デフォルトの名無しさん2005/11/09(水) 04:43:01
コンパイルは出来てるじゃん
0322デフォルトの名無しさん2005/11/09(水) 13:03:12
リンクでした
0323デフォルトの名無しさん2005/11/09(水) 14:31:27
solarisでgcc動作させるまでえらい梃子摺った俺が来た
騙された、全くやる気のないbinutilsが居た
/usr/ucbは一体何?
0324デフォルトの名無しさん2005/11/09(水) 16:51:05
つwww.sunfreeware.com
0325デフォルトの名無しさん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)は残る
と思ったのですがきれいに終了してしまいます。
どうしたらゾンビを残すことが出来ますでしょうか?
03263252005/11/10(木) 14:43:16
書き忘れました。linuxでやってます。
0327デフォルトの名無しさん2005/11/10(木) 15:53:42
なんのために?
03283252005/11/10(木) 16:02:34
どういう場合に残るのか事前に知っておきたいのです。
0329デフォルトの名無しさん2005/11/10(木) 16:05:31
forkのあとsetsid() してみては?
03303252005/11/10(木) 16:34:56
>>329
ありがとうございます。でも駄目でした…
0331デフォルトの名無しさん2005/11/10(木) 16:50:23
init にバグでも仕込まない限り無理やろ
0332以下、名無しにかわりましてVIPがお送りします2005/11/10(木) 16:52:33
>>325
forkしてwaitしてfork先でforkしてexitすれば最後のforkが生き残る
0333デフォルトの名無しさん2005/11/10(木) 17:07:28
こいつは親が死んだ後もゾンビを残したいって言ってんでしょ?
無理でしょ?
0334デフォルトの名無しさん2005/11/10(木) 17:28:32
う−ん、initにSIGSTOP送ってみるとか
0335以下、名無しにかわりましてVIPがお送りします2005/11/10(木) 18:05:28
>>333
>>332の方法で出来るお
(最後のforkの身元引受人がinitになる)

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

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

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

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

gcc -g hoge.c

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

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


























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

0417デフォルトの名無しさん2005/12/08(木) 21:39:30
頭が固くなりすぎて新しい言語を学ぶこともできないジジイ乙
0418デフォルトの名無しさん2005/12/08(木) 21:44:03
使い分けすら考えないとはアホだな
0419デフォルトの名無しさん2005/12/08(木) 22:27:45
>>417
>>418
いや、今は新しくSTL勉強してる訳だが?
0420デフォルトの名無しさん2005/12/08(木) 22:30:42
UNIX はもうだめかもわからんね
0421デフォルトの名無しさん2005/12/08(木) 22:53:43
>>420
お前まだいたのかよ
0422デフォルトの名無しさん2005/12/09(金) 01:10:42
自分自身の現在のメモリ使用量を取得する方法を教えてください。
0423デフォルトの名無しさん2005/12/09(金) 02:07:34
OS依存です
また、あなたの言う「メモリ使用量」の意味を明確に
定義しないことには方法を提示できません
0424デフォルトの名無しさん2005/12/09(金) 09:04:31
getrusage(2)
0425デフォルトの名無しさん2005/12/10(土) 12:50:07
自分のプログラムの実行パスを得たいのですがよろしく。
0426デフォルトの名無しさん2005/12/10(土) 12:56:13
Windows使え。
0427デフォルトの名無しさん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);
0428デフォルトの名無しさん2005/12/10(土) 22:29:21
Solaris:
/proc/プロセス番号/psinfo を sys/procfs.h にしたがって読む。
0429デフォルトの名無しさん2005/12/11(日) 20:26:17
>388 と同じ事で気になって
>389-390 のご回答で納得なんですが
これって機構を用意しただけで
使うかどうかは特に決められてないもんなの?
0430デフォルトの名無しさん2005/12/11(日) 21:00:38
はい
0431デフォルトの名無しさん2005/12/15(木) 13:17:28
環境はRHLinuxなんですがPOSIXってのに準拠してれば
UNIXもLinuxも同じと聞いたので教えてください。
ちなみにUNIX系のプログラムはずぶの素人です。

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

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

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

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

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

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

よろしくお願いします。
0444デフォルトの名無しさん2005/12/16(金) 18:07:29
OS書いた方がいいよ
0445デフォルトの名無しさん2005/12/16(金) 18:16:27
>>443
LargeFile
で検索しなさい
0446デフォルトの名無しさん2005/12/16(金) 18:20:49
すごいエラーメッセージ出すOSだなw
0447デフォルトの名無しさん2005/12/16(金) 21:23:11
>>443
でかいファイルだからってfopen()で失敗するなんてことはない。
0448デフォルトの名無しさん2005/12/17(土) 23:01:31
>>447
Tru64 や *BSD なら確かにその通りだが、それ以外の UNIX や
Linux だと、エラーコード EFBIG で fopen() が失敗する。
対処方法は
ttp://www.unix.org/version2/whatsnew/lfs20mar.html
にある。
0449デフォルトの名無しさん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列目です。


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

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

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

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

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

1〜100000は自力でがんばれ
0454デフォルトの名無しさん2005/12/19(月) 14:43:09
>>453
そのheadとtailは意味あるの?
というか列と行間違えてない?
0455デフォルトの名無しさん2005/12/19(月) 14:56:47
要件が曖昧でわからん
0456デフォルトの名無しさん2005/12/19(月) 15:18:20
どっちにしろ「UNIXプログラミング」じゃないからスレ違い。
04574492005/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

0458デフォルトの名無しさん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
04594492005/12/19(月) 15:40:33
板違いのようなのでシェルスクリプトスレにいってきます。
ご迷惑おかけしました。
0460デフォルトの名無しさん2005/12/19(月) 16:46:45
10まんこもあるとシェルスクリプトはどうかと思う
Cでつくれば?こんなの初心者だって出来るでしょ
0461デフォルトの名無しさん2005/12/19(月) 16:49:23
何故C
0462デフォルトの名無しさん2005/12/19(月) 17:09:06
なんでCになるんだ?
0463デフォルトの名無しさん2005/12/19(月) 17:36:23
perlなら30秒で瞬殺だろ。
実行は2分くらいかかるかもな。
0464デフォルトの名無しさん2005/12/19(月) 17:37:36
なぜシェルスクリプトじゃだめなのでしょうか
0465デフォルトの名無しさん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]);
}
0466デフォルトの名無しさん2005/12/19(月) 21:11:19
KISS
0467デフォルトの名無しさん2005/12/19(月) 21:31:17
ふつー awk
0468デフォルトの名無しさん2005/12/19(月) 21:40:05
awkは書かねぇ一行たりとも
0469デフォルトの名無しさん2005/12/19(月) 21:40:57
>>467
だよな
04704492005/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言語では無理でしょうか?
04714492005/12/19(月) 21:56:26
gccでコンパイルした後は

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

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

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


>>475さん
その方法は前に試していたのですが、Argument list too longと出て
実行できなかったんですよ。
0477デフォルトの名無しさん2005/12/20(火) 00:20:21
一番中身の無い言葉だよな。「無事解決出来ました」ってのが。
0478デフォルトの名無しさん2005/12/20(火) 07:31:32
自作のプログラムだってんだからa.outの方を改造せよっつーのが
このスレ的な回答だと思うんだけど…
0479デフォルトの名無しさん2005/12/20(火) 09:57:25
>>478
1.なんでもかんでもフィルタで解決する
というUNIX的プログラミング精神に反するからだろ
ソースの改造は2番目
0480デフォルトの名無しさん2005/12/20(火) 11:54:07
小さく単純に
04814312005/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
04824312005/12/22(木) 14:19:40
すいません。ageで。
0483デフォルトの名無しさん2005/12/22(木) 18:31:56
> pthread_tってINTの別名じゃないんでしょうか?

ちがいます。

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

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

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

$ ./a.exe
hoge1hoge1
hoge2hoge2

foo@bar ~/srcoge3hoge3
0492デフォルトの名無しさん2005/12/25(日) 12:13:44
>つーか、waitしろよ
同意w
0493デフォルトの名無しさん2005/12/25(日) 13:18:46
>改行無しでprintfする場合、直後に
>fflush(stdout);
>を加えてみたら。
同意w
0494デフォルトの名無しさん2005/12/25(日) 15:43:10
すぐ後に改行出してんだからflushするしないは関係ないし、
waitするしないも関係ないだろ。
0495デフォルトの名無しさん2005/12/25(日) 16:07:26
waitしないと確実なことはできないじゃない?
この場合は親子そろって普通に終了してるのも問題かもね。
_exit()
0496デフォルトの名無しさん2005/12/25(日) 16:24:28
順序を制御しようとしてるわけじゃないんだからどっちがいつ終わろうが関係ないんじゃね?
0497デフォルトの名無しさん2005/12/25(日) 18:41:15
つーか、コードが悪すぎ
0498デフォルトの名無しさん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

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

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

0505デフォルトの名無しさん2005/12/25(日) 20:11:31
データ特性によって、うまkハッシュ関数を切り替えていければ面白いかもしれない。
05064992005/12/25(日) 20:24:57
5000万行以上のテキストを並び替えたいのですがソートを一日中やってても終わりません。
どなたかプログラム出来る方、ハッシュソートを作ってもらえませんでしょうか?
これなら数十分だと思うのですが。
0507デフォルトの名無しさん2005/12/25(日) 20:31:37
何ソートつかってんのよ。
0508デフォルトの名無しさん2005/12/25(日) 20:35:07
>>507
sortじゃね?
05094992005/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

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

ここがまちがい。
0520デフォルトの名無しさん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
0521デフォルトの名無しさん2005/12/25(日) 23:05:01
> fflush(NULL);
これは何?何でfflush(stdout)じゃないの?
0522デフォルトの名無しさん2005/12/25(日) 23:11:15
>>498
親の、
  read(out[R], buf, BUFSIZ);
は、BUFSIZ書かれるまで帰ってこない
親もfgetsすればいいんじゃないの?
0523デフォルトの名無しさん2005/12/25(日) 23:13:52
>>520
環境がうんこ
てか環境かけよ
0524デフォルトの名無しさん2005/12/25(日) 23:20:24
>>522
>  read(out[R], buf, BUFSIZ);
> は、BUFSIZ書かれるまで帰ってこない

これもまちがい。

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

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

0526デフォルトの名無しさん2005/12/25(日) 23:26:45
>>525
struct hogeの具体的なサイズと実行してるシェルの
ulimit -aの出力を書いてください
0527デフォルトの名無しさん2005/12/25(日) 23:34:12
>>524
いやまぁ503も間違いだから全部まちがいだな
0528デフォルトの名無しさん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 に書き込んでないから。
0529デフォルトの名無しさん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 を返すので、
そこに書き込んだ瞬間にアウト。
0530デフォルトの名無しさん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 で対応してるので問題ない。

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

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

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

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

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

# あまりパイプに関する資料が見つからなくて困っているのです…
0533532=4982005/12/26(月) 00:23:42
すいません、間違って497さんを騙ってしまいました。
前の書き込みは498です…。
0534デフォルトの名無しさん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
05355252005/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;
}
0536デフォルトの名無しさん2005/12/26(月) 01:09:10
>>534
gdbで見てみたら?
0537デフォルトの名無しさん2005/12/26(月) 01:12:12
mallocの中でSEGVするのはかなりの確率でヒープの管理
領域が既に壊れている場合。malloc以外の場所にバグが
あってそれが偶然mallocの中で発言したってことが多い。

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

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

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

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

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

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

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

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

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

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

ここの、、、初心者なので全然わからないんですが、誰か教えてたも。
0546デフォルトの名無しさん2005/12/26(月) 13:06:44
>>543
なら正確になるように補足して。
05475232005/12/26(月) 13:15:23
>>525
環境がLinuxだとすると memory overcommit かもしれない
詳しくはぐぐってもらうとして、対処はあきらめるか
/proc/sys/vm/overcommit_memory を2にするらしい
0548デフォルトの名無しさん2005/12/26(月) 14:12:25
>>546
man setvbuf
0549デフォルトの名無しさん2005/12/26(月) 14:15:56
>>544
UNIXならselectで待てるけど
Windowsの場合はselectはネットワークsocket専用なので待てない
0550デフォルトの名無しさん2005/12/26(月) 14:26:04
>>549
UNIXです
0551デフォルトの名無しさん2005/12/26(月) 15:20:36
>>550
fdが判ってれば大丈夫じゃないかな?
0552デフォルトの名無しさん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できないのです・・・
0553デフォルトの名無しさん2005/12/26(月) 16:05:06
>>552
switch(select(fd+1, &fdset, NULL, NULL, NULL )){
0554デフォルトの名無しさん2005/12/26(月) 16:17:40
>>553
あっ忘れてました。
fd+1に変更したけど結果は一緒でした。
0555デフォルトの名無しさん2005/12/26(月) 16:19:00
>>548
もとネタはバッファはデフォルトのままだよ。
0556デフォルトの名無しさん2005/12/26(月) 16:53:43
>>554
FD_SET(fd+1, &fdset);
0557デフォルトの名無しさん2005/12/26(月) 16:58:40
ええ?
0558デフォルトの名無しさん2005/12/26(月) 17:02:17
>>556
だめでした(;_;)
0559デフォルトの名無しさん2005/12/26(月) 17:11:06
コンパイルできないソース貼られてもなあ
0560デフォルトの名無しさん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));
}
}

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

なんか、SOLARISインターナルっう本を読む限りでは、
デフォルトでは「ユーザスレッド数>LWP数」な、
いい感じに調整されるって書いてあるんですが、
Solarisのバージョンがあがって仕様が変わったんでしょうか?
0574デフォルトの名無しさん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 を元に記述されているから、ここら辺は
カバーされていない。詳細は「代替スレッドライブラリ」でググってみ。
0575デフォルトの名無しさん2006/01/03(火) 14:40:46
そもそも何で LWP の数を減らす必要が発生したのか考えた方が良いと思う。
それは何か間違いを犯している兆候だから。
05765732006/01/03(火) 15:19:35
>>574
どうもありがとうございます。

>>575
深い理由は無いんですが、
いろいろと、スレッド周辺に関して調べたいもので。
0577デフォルトの名無しさん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).

何が起きてこうなるの?
0578デフォルトの名無しさん2006/01/05(木) 01:23:26
何を質問したいの
0579デフォルトの名無しさん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すること。
0580デフォルトの名無しさん2006/01/06(金) 01:21:56
>>578
アホは引っ込んどきな
0581デフォルトの名無しさん2006/01/06(金) 16:35:02
LinuxでSIGSEGVやSIGFPEを無視する(あるいはエラー処理をしてプログラムを続行する)にはどうすればよいのでしょうか?
普通に無視すると無限ループになってしまうので。。。
0582デフォルトの名無しさん2006/01/06(金) 17:34:43
「無視」とはどう動くのを期待してるのか次第
0583デフォルトの名無しさん2006/01/06(金) 17:55:04
>>581
setjmpしておいた所にlongjumpする。
0584デフォルトの名無しさん2006/01/08(日) 13:40:16
UNIXネットワークプログラミングを読むと、バルク転送には
TCPを使うべきだって書いてありますよね。いまだにファイル転送にFTPを
使う意味ってなんなんでしょうか?
0585デフォルトの名無しさん2006/01/08(日) 13:44:07
F T P は ぁ 〜 、 T C P の ぉ 〜 上 位 プ ロ ト コ ル で 〜 す 。
H T T P も ぉ 〜 ( r y
0586デフォルトの名無しさん2006/01/08(日) 14:15:30
いまどきはUUCPですよ
0587デフォルトの名無しさん2006/01/08(日) 14:16:35
B-PLUSが最速ですよ
0588デフォルトの名無しさん2006/01/09(月) 03:01:13
FTPってサーバからクライアントへの接続があるよね
あれをなんとかしたのがPASV方式って認識であってる?
0589デフォルトの名無しさん2006/01/09(月) 03:13:11
まあ、ぶっちゃけそう。
0590デフォルトの名無しさん2006/01/09(月) 03:13:22
>>588
ええ
0591デフォルトの名無しさん2006/01/09(月) 04:47:55
>>589
ありがとう
お礼にうちに来て妹とファックしてもいいよ
0592デフォルトの名無しさん2006/01/09(月) 08:26:58
サーバーからクライアントはPORTの方だろ
PASVはクライアントからサーバーへ繋ぎに逝く
0593デフォルトの名無しさん2006/01/09(月) 09:01:57
>>592
日本語が不自由な人w
0594デフォルトの名無しさん2006/01/09(月) 09:30:47
>>592
PASVなモードではPORTコマンドを使わないような書き方だな…
0595デフォルトの名無しさん2006/01/09(月) 09:44:42
みんな日本人語が通じないぽい(><
0596デフォルトの名無しさん2006/01/09(月) 09:45:48
日本人語てなんやねん(><
0597デフォルトの名無しさん2006/01/09(月) 11:17:01
負け犬必死だな
0598デフォルトの名無しさん2006/01/13(金) 12:21:46
人少ないな
もうこのスレにはUNIX使いはいないのか
0599デフォルトの名無しさん2006/01/13(金) 13:22:36
人はいるけど書くことがないってところだろう
0600デフォルトの名無しさん2006/01/13(金) 14:41:18
ここに書いてもノイズしか拾えないような……
0601デフォルトの名無しさん2006/01/13(金) 14:59:07
sed '/^$/q' -> sed -e "/^$/q" に書き換えるとエラーになります
0602デフォルトの名無しさん2006/01/13(金) 15:03:30
$ をエスケープすりゃいいんじゃねえの?
^ もか?
0603デフォルトの名無しさん2006/01/13(金) 16:47:36
UNIXってWindowsのSendMessageみたいに同期処理される関数ってないの?
mq_sendのmsg_prioの優先順位高くしても同期処理はもちろんされないよね。
0604デフォルトの名無しさん2006/01/13(金) 17:05:36
WindowsのSendMessageと、UNIXのmq_sendは全然違うレイヤーのサービス。

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

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

>>606がどっちの意味で言っているかわからんが。
>>603の用途だと同期的に使うわけだから、
>>604の言っている意味のsignalでは全く問題なし。
0614デフォルトの名無しさん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.
とも書いてあるので適当な値でも困ることは無さそうですが・・・
0615デフォルトの名無しさん2006/01/14(土) 00:13:42
>604
> Glib(のGObject)のsignalが、SendMessageに相当。
それは微妙に違う。
メッセージはメッセージでもGSignalはObjCやSmalltalkのアレみたいなもの。
0616デフォルトの名無しさん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() 系の関数を使って行います。

0617デフォルトの名無しさん2006/01/16(月) 01:12:58
GTKでテキストエントリを使用しようと思ってのですが、
テキストエントリの表示サイズを指定する方法がわかりません。
画面の横いっぱいにテキストエントリが表示されてしまいます。
固定化するメソッドとかは無いのでしょうか?
何か方法があれば教えてください。
0618デフォルトの名無しさん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
06196172006/01/16(月) 02:23:02
>>618
わかりやすいドキュメントありがとうございます。
gtk_table_atachの引数が問題だったみたいです。
こういう場合は、GTK_SHRINKを引数にとるんですね。
勉強になりました。
0620デフォルトの名無しさん2006/01/19(木) 00:23:10
write って書き込みバイト数 0 で呼ぶと
何もしない?
0621デフォルトの名無しさん2006/01/19(木) 00:30:35
ためせば。
0622デフォルトの名無しさん2006/01/19(木) 00:35:00
またすぐそーゆーことゆー
0623デフォルトの名無しさん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.
0624デフォルトの名無しさん2006/01/19(木) 10:32:46
>>623
レギュラーなファイルって、ソケットも含まれるかな?
デバイスファイルならそれは挙動が決まってはいないだろうけど。
0625デフォルトの名無しさん2006/01/19(木) 11:02:02
w
0626デフォルトの名無しさん2006/01/19(木) 15:58:57
>>624
For a special file, the results are not portable.
0627デフォルトの名無しさん2006/01/19(木) 17:11:07
>>626
ソケットはスペシャルなの?
0628デフォルトの名無しさん2006/01/19(木) 17:32:31
>>627
stat(2)
0629デフォルトの名無しさん2006/01/19(木) 19:37:18
>>624
regular file って、普通のファイルのことだぞ
socketは普通ファイルじゃないだろ

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

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

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

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

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

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

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

ToolTalk ユーザーズガイド
http://docs.sun.com/app/docs/doc/816-3975?l=ja
06416392006/01/21(土) 19:51:03
済みません。それを読んでも理解できないので、
もっと低脳向けのゆるゆるな奴を捜しているんですが・・・
0642デフォルトの名無しさん2006/01/22(日) 08:06:28
>>638
普通って言うな!!
0643デフォルトの名無しさん2006/01/22(日) 10:12:56
>>641
http://h30097.www3.hp.com/docs/i18n/japan/JCDETTMSG/GetStart_2.html
もあげておくが、諦めた方がいいと思う。
0644デフォルトの名無しさん2006/01/22(日) 18:47:47
>>643
天下のHPの癖に文字化けか
エンコードきちんと設定しとけよアホかHP
0645デフォルトの名無しさん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
0646お願いします;;2006/01/26(木) 23:48:52
任意の生年月日と今日の日付を入力すれば、
産まれてから今日まで生きてきた日数を出力するプログラムを作れ。
さらに、任意の整数nを入力して、産まれてからn日目が、
いつかを出力させるプログラムを作れ。
ちなみに、閏年は以下のようにして決められる。

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

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

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

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

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

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

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

んー・・・;;

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

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

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

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

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

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

いやもっと掘下げないと自分が理解できない、alarmとかは誰の仕事?
もう質問の仕方がわけわかんないんで、猿でもわかるUNIXシステムコール入門本教えてください
0664デフォルトの名無しさん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
0665デフォルトの名無しさん2006/02/02(木) 16:35:22
>664
下のURL最高、そんなサンプルが見たかった。
しかも本の説明どんぴしゃ!注文する。本当ありがと!

ヘッダ広げて片っ端から叩いてるのにわからなくて悔しいぜ
本たけー
0666デフォルトの名無しさん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/

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

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

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

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

>>677
GLPか…プラットホーム(wくらい書いた方がいいと思う。
0685デフォルトの名無しさん2006/02/08(水) 03:42:47
>>683
scandir() というのも Linux にあるぞ。UNIX にもあるんじゃないのか?
man 見ると BSD 4.3 から取り入れられたと書いてあるぞ。
0686デフォルトの名無しさん2006/02/08(水) 03:43:54
あ、ちょっと違うな。scandir() は正に scan しかしないや。比較は自分で書くんだ。
0687デフォルトの名無しさん2006/02/08(水) 09:38:23
シェルと同じ展開をさせたいならシェルを起動すればいいじゃない。
#popen()使うとか。
漏れはシェルワイルドカードを正規表現に変換したがな。
06886782006/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++;
  }
なので。

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

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

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

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

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

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

Linxuのドキュメントってバージョンアップ時の追随が
面倒なのか恐いのか そういうのが多いよな
0707デフォルトの名無しさん2006/02/11(土) 00:59:44
load average って CPU 数で読み方変わるのな。
うっかりそっちも平均取ってるかと思い込んでたよ。トホホ。
0708ヽ(´ー`)ノ ◆.ogCuANUcE 2006/02/11(土) 13:41:33
>>703
Linux ならカーネルに付属してる Documentation/filesystems/proc.txt とか。
最新じゃないかもしれないが、man よりはメンテナンスされてるだろう(多分)。
0709デフォルトの名無しさん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;
となっていて、正しそうで正直どうすれば良いのかさっぱり分かりません。
どうすればコンパイルできるのでしょうか?
0710デフォルトの名無しさん2006/02/12(日) 05:22:35
>>709
多分、何かが原因でerrnoが定義されて無いだけだよ

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

>>709
#include <errno.h>
を追加してみてもダメか?
それでダメなら
extern int errno;
だな。
#詳しくはman -s 3 errno参照で。
0712709 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のハズなんですけれども・・・
0713709 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)
0714709 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
こう書いて有るんですけど
0715デフォルトの名無しさん2006/02/12(日) 11:15:16
BYTE_ORDERがすでにどっかで定義されてるんでしょ?
こういうイヤなエラーが出るのはあきらめるが吉

とりあえず gcc じゃなくて、Sun Studio 11 使ってみては?
(cc は /opt/SUNWspro/bin/cc あたりだと思う)
0716デフォルトの名無しさん2006/02/12(日) 15:18:36
>>715
> こういうイヤなエラーが出るのはあきらめるが吉
とりあえず
find /usr/include -name '*.h' | xargs grep BYTE_ORDER
するのが普通なのでは?
0717709 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











0718709 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
0719デフォルトの名無しさん2006/02/20(月) 07:28:02
現在の自分自身のメモリ使用量の取得方法を教えてください
0720デフォルトの名無しさん2006/02/20(月) 08:09:13
自分自身って何だよ。プロセス? ユーザ? マシン全体?
質問する時は OS の名前を添えて、内容は具体的に。
0721デフォルトの名無しさん2006/02/20(月) 10:51:23
>>719の脳味噌の詰まり具合だったりして
0722デフォルトの名無しさん2006/02/20(月) 11:42:40
$ cat /proc/$$/stat
0723デフォルトの名無しさん2006/02/20(月) 18:58:02
現在の自分自身の実行パスの取得方法を教えてください
0724デフォルトの名無しさん2006/02/20(月) 19:09:34
>>723
>>4
> □ 1.14 どうすればプロセスの実行ファイルを見つけられますか?
0725デフォルトの名無しさん2006/02/20(月) 19:28:26
$ readlink /proc/$$/exe
/bin/bash
0726デフォルトの名無しさん2006/02/20(月) 19:56:27
% ls -l /proc/self/path/cwd
0727デフォルトの名無しさん2006/02/20(月) 19:59:11
$ readlink /proc/curproc/file
/bin/sh
0728デフォルトの名無しさん2006/02/20(月) 20:04:47
>>725-727
おまいらきもいよ
0729デフォルトの名無しさん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);
0730デフォルトの名無しさん2006/02/20(月) 20:09:10
FreeBSD 6? は何で /proc 使わないの?
0731デフォルトの名無しさん2006/02/20(月) 20:11:23
>>726
それちょっとチガワねーか?
0732デフォルトの名無しさん2006/02/20(月) 20:22:24
>>730
jail と相性が悪いから
0733デフォルトの名無しさん2006/02/20(月) 20:27:14
>>725
そのUNIX、何ていうやつ?
参考までに教えて。
0734デフォルトの名無しさん2006/02/20(月) 20:31:34
>>733
これLinuxでしょう。

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

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

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

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

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

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

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

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

とやっても、pが指すメモリが解放されないって意味にならないか?
0756デフォルトの名無しさん2006/02/25(土) 09:08:34
ルートから到達不可能なヒープ領域があったら
メモリリーク
0757デフォルトの名無しさん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.

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

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

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

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

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

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

じゃあ、おしまい。
0763デフォルトの名無しさん2006/02/25(土) 11:15:35
頭悪
0764デフォルトの名無しさん2006/02/25(土) 11:23:55
>>760
違和感ありまくりなんだが...
まぁ、どうでも良いけど。
0765デフォルトの名無しさん2006/02/25(土) 11:29:50
>>762
extern char *p;
〜
p = (char *) malloc(size);
// 以下pもpのアドレスもプログラム内に一切登場せず

でメモリリークだろ。

これから実行されるプログラムから到達可能じゃないといけない。
変数かどうかは関係ない。(たとえばreturn malloc(〜);など)
0766デフォルトの名無しさん2006/02/25(土) 12:31:53
それはリークしてない
0767デフォルトの名無しさん2006/02/25(土) 13:12:48
>>765
バカは議論に参加するな。スレが荒れる
0768デフォルトの名無しさん2006/02/25(土) 13:25:21
ジエーンど
0769デフォルトの名無しさん2006/02/25(土) 13:30:39
>>766
リークの意味分かってないだろ。
0770デフォルトの名無しさん2006/02/25(土) 13:33:49
彼女の中でリークした
0771デフォルトの名無しさん2006/02/25(土) 13:44:19
今晩もおリークだ。
0772デフォルトの名無しさん2006/02/25(土) 16:06:50
やあ、漏れはリークだ
0773デフォルトの名無しさん2006/02/25(土) 16:13:09
munmap(>>739-772)
0774デフォルトの名無しさん2006/02/25(土) 16:53:30
おれこのプロセスでどんだけmallocしてたっけ?
ってのを参照するAPIがあればいいんだがにゃー
0775デフォルトの名無しさん2006/02/25(土) 16:58:42
そんなmallocライブラリは山ほどありますよん。
malloc debugでググってね
0776デフォルトの名無しさん2006/02/25(土) 17:13:25
>>774
見つけたとして、それを解放しちゃっていいかまでは判断できないんじゃ。
デバッグに使えるくらいだ。
0777デフォルトの名無しさん2006/02/25(土) 17:27:21
ほんならBoehmでも使えばええやないの。
0778デフォルトの名無しさん2006/02/25(土) 17:43:12
Boehmも万能じゃないっしょ
0779デフォルトの名無しさん2006/02/25(土) 17:49:55
万能キター!
0780デフォルトの名無しさん2006/02/25(土) 18:14:15
ほんなら欲しいもの自分でつくれや
0781デフォルトの名無しさん2006/02/25(土) 18:24:52
(・∀・)ニヤニヤ <万能じゃないっしょ
↑
>>778
0782デフォルトの名無しさん2006/02/25(土) 21:34:57
メモリリークで盛り上がれる幸せなスレがあると聞いてすっとんできますた。
0783デフォルトの名無しさん2006/02/25(土) 21:54:33
Boehmコワイ
0784デフォルトの名無しさん2006/02/25(土) 22:21:22
mallocした領域をfreeせずにexitするのは危険でしょうか? ニヤニヤ
0785デフォルトの名無しさん2006/02/25(土) 22:35:30
exitするなら。ニヤニヤ
0786デフォルトの名無しさん2006/02/25(土) 23:02:18
妖怪人間Boehme
0787デフォルトの名無しさん2006/02/25(土) 23:26:35
メールをリークしたのは誰ですか?
0788デフォルトの名無しさん2006/02/25(土) 23:41:41
どうも UNIX 系のスレは下らない脱線するな。
0789デフォルトの名無しさん2006/02/25(土) 23:48:27
Windows系はオコサマがマジ切れして荒れるけどな。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

できるだけバージョンやベンダーに依存しない方法があれば良いのですが...
0868デフォルトの名無しさん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...]を外す方法はないですか?
0869デフォルトの名無しさん2006/03/25(土) 19:12:17
ありません
08708682006/03/25(土) 19:41:46
>>869
そこを何とか。
最後に入力ファイル名を渡すようなプログラムって、
poptは使ったりしないもの?
0871デフォルトの名無しさん2006/03/25(土) 21:33:01
pthread_getcpuclockid
0872デフォルトの名無しさん2006/03/25(土) 21:51:53
>>870
何とかって無いものは無い
poptを改造して開発元にパッチ送ればいいんじゃないの
0873デフォルトの名無しさん2006/03/25(土) 23:22:09
パッチを送ると拍手喝采だよな
パッチパッチ
08748652006/03/26(日) 01:12:54
>>871

ありがとう!
0875デフォルトの名無しさん2006/03/28(火) 16:51:17
ディレクトリ内のファイルの一覧の取得方法を教えてください。
opendirなどで検索するとphpのページはヒットするのですが、Cでの取得方法がわかりません。
0876デフォルトの名無しさん2006/03/28(火) 17:00:33
>>875
man opendir
0877デフォルトの名無しさん2006/03/28(火) 17:01:58
>>875
PHPでのサンプルを見ればそのままCにも応用できない?
うちのOSでは「man opendir」すると、そのものズバリのサンプルが書
かれてる。
0878デフォルトの名無しさん2006/03/28(火) 17:22:16
http://www.opengroup.org/onlinepubs/009695399/functions/readdir.html
0879デフォルトの名無しさん2006/03/29(水) 18:58:51
プロセスの一覧の取得と各プロセスの所有者を取得する方法を教えてください
0880デフォルトの名無しさん2006/03/29(水) 19:36:10
>>879
$ man ps
0881デフォルトの名無しさん2006/03/30(木) 18:49:47
1秒以下でスリープするさせる方法はありませんか?
0882デフォルトの名無しさん2006/03/30(木) 18:57:12
>>881
nsleepがあるかもしれないな
0883デフォルトの名無しさん2006/03/30(木) 20:08:56
man usleep
0884デフォルトの名無しさん2006/03/30(木) 21:04:28
sleep(0);
0885デフォルトの名無しさん2006/03/30(木) 23:20:29
今どきは nanosleep じゃねえかな
これは POSIX だし
0886デフォルトの名無しさん2006/03/31(金) 00:48:58
対話的に実行するコンソールプログラムの出力をファイルに取り込むことは出来るでしょうか?
./cmd | tee cmd.log
だと表示もおかしくログもうまく取れません。
0887デフォルトの名無しさん2006/03/31(金) 01:14:42
>>886
man script
0888デフォルトの名無しさん2006/03/31(金) 13:35:47
>>886
つ[xwd]
0889デフォルトの名無しさん2006/03/31(金) 21:37:56
ま、お望みの物は script だろうけど、ttyrec というのもある。
0890デフォルトの名無しさん2006/04/10(月) 11:20:47
CPUの数を取得する方法を教えてください
0891デフォルトの名無しさん2006/04/10(月) 12:10:32
OSによる
0892デフォルトの名無しさん2006/04/10(月) 20:40:25
>>890
printf ("CPUの数は?\n");
int cpu_num;
scanf ("%d", &cpu_num);
0893デフォルトの名無しさん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の例かは教えてあげないんだからっ
0894デフォルトの名無しさん2006/04/10(月) 22:27:40
mib つーのが、いつ見ても変な感じ。
0895デフォルトの名無しさん2006/04/11(火) 06:48:50
Men In Black?w
0896デフォルトの名無しさん2006/04/13(木) 15:51:24
学校でUNIX起動するとX window が起動してコンソールだけ出るんですが、
マウスでKtermを出そうとして透明の枠をクリックすると消えてしまい
ウインドウが出てくれません。
どうすればいいでしょうか
0897デフォルトの名無しさん2006/04/13(木) 17:33:09
学校できけ
0898デフォルトの名無しさん2006/04/13(木) 22:14:00
>>896
>透明の枠

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

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

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

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

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

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

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

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

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

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

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

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

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

>ソ\ケット

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

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

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

結果です。

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

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

>つ ンケット

今度やってみます。w
0923デフォルトの名無しさん2006/04/18(火) 08:42:18
>>921
configure時に--enable-c-mbcharかなんかつけてビルドしないとダメなんでしょ?
ちゃんと動くのかどうか知らないけど。
0924デフォルトの名無しさん2006/04/18(火) 10:46:41
>>923
gcc 3.4 からは -finput-charset で実行時に指定できる。
0925デフォルトの名無しさん2006/04/18(火) 10:51:52
localeと関係ないじゃんw
0926デフォルトの名無しさん2006/04/18(火) 11:04:52
このオプションで指定できるエンコーディングのデフォルトが UTF-8 で、
locale でも上書きできるとなっている。
0927デフォルトの名無しさん2006/04/18(火) 11:19:43
>>926
ほんとだ知らんかった!
0928デフォルトの名無しさん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 でオーバーライドできる。
0929デフォルトの名無しさん2006/04/18(火) 12:37:13
昔のは日本語オンリーね。
0930デフォルトの名無しさん2006/04/18(火) 15:15:18
C-SJIS とかのこと言ってる?
0931デフォルトの名無しさん2006/04/18(火) 15:32:54
http://darwinsource.opendarwin.org/DevToolsDec2001/gcc-934.3/gcc/mbchar.c
0932デフォルトの名無しさん2006/04/18(火) 15:38:53
日本語以外もサポートしてるじゃん
0933デフォルトの名無しさん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次第ってことですわね。
0934デフォルトの名無しさん2006/04/19(水) 00:41:31
localeなんて欠陥システムは無視無視
0935デフォルトの名無しさん2006/04/19(水) 04:13:27
C言語、GNU readline の質問です。
デフォルトで有効になっているカレントディレクトリのファイル名補完機能を無効にし、
コマンドラインからの入力なしの状態でTabキーを押したらa_func b_func c_func と表示させ、
aを入力した状態でTabキーを押したらa_funcと補完させるプログラムを作りたいです。
サンプルが欲しいです
0936デフォルトの名無しさん2006/04/19(水) 08:51:06
Readlineのソースに入っているexamples/rl-fgets.cを読め。
FGETS_COMMAND_FILEから候補を読むところを、
a_func b_func c_funcで候補リストを作成。
0937935(GNU readline の質問)2006/04/19(水) 10:50:05
>>936
ありがとうございます。
さっそくやってみます。
0938デフォルトの名無しさん2006/04/22(土) 19:24:09
こんど仕事でhp-uxのプログラム作らなきゃいけないのですが、
どこかシステムコールとかを詳しく解説してるとこってないでしょうか?
WindowsのAPI関数みたいなライブラリってあるのでしょうか?
0939デフォルトの名無しさん2006/04/22(土) 19:37:25
>>938
UnixのシステムコールはLinux関係のサイトに詳しい。
但し、HP-UXは独特なので、それらはHPのHP・・・じゃなくてサイトでしか入手できないかもしれない。
尚、WindowsAPIほど潤沢にAPIが用意されているわけではないので、(特にグラフィックは)何を使うか
事前に充分検討しておくことをお勧めしておく。
0940デフォルトの名無しさん2006/04/22(土) 23:33:09
>>938
ページくらいちゃんと見れやれよ。
http://h50146.www5.hp.com/doc/manual/

>>939
生半可な知識でいい加減な事言うなよ。
0941デフォルトの名無しさん2006/04/23(日) 00:28:12
HPのHPに泣いた
09429392006/04/23(日) 00:51:57
>>940
えーと、なんか間違ってたかな?
0943デフォルトの名無しさん2006/04/23(日) 12:54:20
API云々のとこは変でしょ
あと「潤沢」てのは適切でないな
0944デフォルトの名無しさん2006/04/24(月) 01:04:19
>>554
それも含めて子供を生んだ後の問題なんじゃね?
0945デフォルトの名無しさん2006/04/24(月) 06:47:45
そうなの?
0946デフォルトの名無しさん2006/04/26(水) 02:15:22
POSIX共有メモリで4層ぐらいネストした構造体扱おうと思っているのですが、
この時、可変長な値は予め最大サイズを決めて確保するべきなのでしょうか。
0947デフォルトの名無しさん2006/04/26(水) 02:19:42
ばこっと確保した共有メモリの中をヒープとして自前で管理すりゃいんじゃね?
0948デフォルトの名無しさん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;

ヒントだけでもいいので、何かご存知の方・・・
0949デフォルトの名無しさん2006/04/28(金) 01:08:38
はりわすれました。vmstatのソースです
http://gobsd.com/code/freebsd/usr.bin/vmstat/vmstat.c
0950デフォルトの名無しさん2006/04/28(金) 01:17:46
>>948
#include <nlist.h>
0951デフォルトの名無しさん2006/04/28(金) 04:51:02
なんでこのスレは質問を強要しているのですか?
0952デフォルトの名無しさん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% になる。
0953デフォルトの名無しさん2006/04/28(金) 12:55:29
>>951
じゃあ次回からは「質問ある?」で
0954デフォルトの名無しさん2006/04/28(金) 22:46:49
それだと質問あるかないか、YES,NOのレスが続くだけのスレになるだろーが
0955デフォルトの名無しさん2006/04/28(金) 22:58:59
無駄な「だろーが」入りました!
09569482006/04/29(土) 01:18:09
>>952
返信ありがとうございます。
ヒント、というか、そのものズバリを教えていただけるとは思いませんでした。
うーむ、mysysctlはsysctlを使うのと同じものだったとわ・・
ありがとうございました^!
0957デフォルトの名無しさん2006/05/01(月) 20:37:06
UNIX系の人って、IDE何使ってるの?
0958デフォルトの名無しさん2006/05/01(月) 20:46:18
emacs
0959デフォルトの名無しさん2006/05/01(月) 21:13:18
azumacs
0960デフォルトの名無しさん2006/05/02(火) 21:28:02
カイヤ
0961デフォルトの名無しさん2006/05/02(火) 23:55:25
POSIX共有メモリで構造体そのまんまで扱う時って定数構造体宣言して
mmapでよかったっけ?

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

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

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

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

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

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

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

すいません.質問の仕方が悪かったみたいです
0972デフォルトの名無しさん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;

}
0973デフォルトの名無しさん2006/05/15(月) 23:47:07
>>972
fts_statp を見ろ
0974デフォルトの名無しさん2006/05/15(月) 23:50:07
FTS_Fでも抑制したら。
0975デフォルトの名無しさん2006/05/16(火) 11:44:58
>>972
if (fts->fts_info == FTS_D)
  printf("%s\n",fts->fts_path);
0976デフォルトの名無しさん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;
}
0977デフォルトの名無しさん2006/05/17(水) 14:44:56
>>976
1 だとか 2 だとかコメントに書かないほうが良いよ。
別の OS で FTS_D が 2 だったら、コメントも変えるの?
0978デフォルトの名無しさん2006/05/17(水) 16:02:12
>>970
Linux なら /proc/sys/kernel/sem で拡張できるよ
09799702006/05/17(水) 17:06:40
>>978
>Linux なら /proc/sys/kernel/sem で拡張できるよ

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

mutexの場合はロックの粒度に応じてthread_mutex_tの変数を
プロセス共通のシェアードメモリに必要なだけ確保すればいい
だけなので,セマフォより使いやすいのかなと思ったんです.
09809702006/05/17(水) 17:31:46
ところで次のスレはこの板に作っちゃっていいんでしょうか?
Unix板でやれという意見もあるようですが.
0981デフォルトの名無しさん2006/05/17(水) 17:48:45
UNIXのプログラムの質問をするスレなんだからプログラム板だろ
0982デフォルトの名無しさん2006/05/17(水) 17:49:08
>>979
pthread_mutexがprocessを越えても有効かどうかは環境依存。
09839702006/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
0984デフォルトの名無しさん2006/05/18(木) 00:19:14
>>981
UNIXのプログラムの質問をするスレなんだからUNIX板だろ
0985デフォルトの名無しさん2006/05/18(木) 00:32:59
>>984
どっちでもいいから、次スレは同じ板に立てるのがデフォルトってことで、プログラム板だろ。
0986デフォルトの名無しさん2006/05/18(木) 00:49:02
UNIXを目の仇にしてるごく一部のおかしな人が暴れてただけだからなあ。
この板で全然いいでしょう。
0987デフォルトの名無しさん2006/05/18(木) 00:58:19
>>984
WIN32APIのスレで同じこと言えよ。
0988デフォルトの名無しさん2006/05/18(木) 01:12:18
両方にあってもいいわけだし。
0989デフォルトの名無しさん2006/05/18(木) 07:19:07
両方あるな
>プログラミング質問すれ Part1 http://pc8.2ch.net/test/read.cgi/unix/1127388574/
09909702006/05/18(木) 19:01:55
次スレ
UNIXプログラミング質問すれ Part8
http://pc8.2ch.net/test/read.cgi/tech/1147946176/
0991デフォルトの名無しさん2006/05/18(木) 22:05:38
>>990乙
0992デフォルトの名無しさん2006/05/20(土) 22:01:20
a
0993デフォルトの名無しさん2006/05/20(土) 22:02:14
b
0994デフォルトの名無しさん2006/05/20(土) 22:03:35
c
0995デフォルトの名無しさん2006/05/20(土) 22:04:36
d
0996デフォルトの名無しさん2006/05/20(土) 22:07:28
e
0997デフォルトの名無しさん2006/05/20(土) 22:08:21
f
0998デフォルトの名無しさん2006/05/20(土) 22:09:21
g
0999デフォルトの名無しさん2006/05/20(土) 22:10:12
h
1000デフォルトの名無しさん2006/05/20(土) 22:11:04
i
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。