[表示 : 全て 最新50 1-99 101- 2chのread.cgiへ]
Update time : 05/10 00:46 / Filesize : 24 KB / Number-of Response : 103
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

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



1 名前:デフォルトの名無しさん mailto:sage [2008/03/18(火) 08:10:34 ]
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド

前スレ
Part8 pc11.2ch.net/test/read.cgi/tech/1147946176/
Part7 pc8.2ch.net/test/read.cgi/tech/1127373405/
Part6 pc8.2ch.net/test/read.cgi/tech/1116908090/
Part5 pc8.2ch.net/test/read.cgi/tech/1105723117/
Part4 pc5.2ch.net/test/read.cgi/tech/1095843584/
Part3 pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 pc2.2ch.net/tech/kako/992/992057422.html

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

53 名前:デフォルトの名無しさん [2008/04/13(日) 06:53:13 ]
pid_t型をprintfで表示したいのですが、どのようにすればよいのでしょうか?

54 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 08:27:44 ]
%u

55 名前:デフォルトの名無しさん [2008/04/13(日) 11:16:21 ]
UNIX プログラミングからは外れているかもしれませんが,
一番近そうな質問スレッドなので質問させていただきます.

共有ライブラリの動的リンクについての質問です,

CentOS 5.1 でシステム標準の GCC 4.1.1 とは別に,GCC 4.2.3, 4.3.0 を /usr/local 以下にインストールしています.
gcc-4.2.3 のライブラリは /usr/local/lib/gcc-4.2.3 に,
gcc-4.3.0 のライブラリは /usr/local/lib/gcc-4.3.0 にインストールしています.

以下のように GCC 4.3.0 でライブラリを指定してコンパイルします.
gcc43 -Wall -O2 -c -fopenmp omp-test.c -o omp-test.o
gcc43 -Wall -O2 -lgomp omp-test.o -o omp-test.parallel
出来上がった実行バイナリ omp-test.parallel を ldd すると,
     linux-gate.so.1 => (0x00110000)
     libgomp.so.1 => /usr/local/lib/gcc-4.2.3/libgomp.so.1 (0x00111000)
     libc.so.6 => /lib/libc.so.6 (0x00565000)
     librt.so.1 => /lib/librt.so.1 (0x00df3000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00702000)
     /lib/ld-linux.so.2 (0x00546000)
と,GCC 4.2.3 のライブラリ依存となってしまいます.
同名のライブラリがある場合,
ldconfig で認識されている共有ライブラリで,一番上にあるものが使用されているようです.
コンパイル時に GCC のバージョンに合わせてライブラリを指定して,
実行時に GCC のバージョンに合ったライブラリをロードする方法をご存知の方はいませんか?

$ ldconfig -p|grep libgomp
     libgomp.so.1 (libc6) => /usr/local/lib/gcc-4.2.3/libgomp.so.1
     libgomp.so.1 (libc6) => /usr/local/lib/gcc-4.3.0/libgomp.so.1
     libgomp.so.1 (libc6) => /usr/lib/libgomp.so.1
     libgomp.so (libc6) => /usr/local/lib/gcc-4.2.3/libgomp.so
     libgomp.so (libc6) => /usr/local/lib/gcc-4.3.0/libgomp.so

56 名前:デフォルトの名無しさん mailto:sage [2008/04/13(日) 11:26:46 ]
-Lで優先したいライブラリのパス指定したら?
最悪libgomp.aをstatic linkしてしまえばいい。
ただ結構コンパイラのバージョン依存なのでそこんとこは注意。

57 名前:55 mailto:sage [2008/04/13(日) 13:15:26 ]
>>55 を書いたときには,コンパイル時に
実行バイナリに,ロードするライブラリのパスが記録されると勘違いしていたのですが,
実際には,コンパイル時には "libgomp.so.1" という情報が記録されるだけのようです.
実行時にロードするライブラリのパスは,
実行時に ldconfig で認識されているライブラリの中から上から順に同名の物を探して決定しているようです.

>>56
どうもありがとうございます.
コンパイラに合うバージョンの libgomp.a を静的にリンクするのが
一番安全そうなので,そうすることにします.

58 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 00:36:44 ]
>>57の前半部分

-R(コンパイル時)や
LD_LIBRARY_PATH環境変数(実行時)で指定できる。

59 名前:55 mailto:sage [2008/04/14(月) 08:15:00 ]
>>58
どうもありがとうございます.
おかげで動的にリンクする場合も安全に実行できるようになりました.

60 名前:デフォルトの名無しさん [2008/04/14(月) 09:47:57 ]
スタティックリンクライブラリを使いたいのですが、どうすればいいですか

61 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 10:48:47 ]
make作業にコンパイルとリンクがあるが、
リンク作業で直接指定してリンクする。



62 名前:デフォルトの名無しさん [2008/04/14(月) 23:12:11 ]
Cシェルで質問

あるディレクトリのファイルを検索して、該当するファイルの先頭4桁を使って、
テキストからその4桁に対応する文字列を持ってきたいとする。

↓この"key"に検索したいファイル名の文字列を入れる。

set READKEY = `ls -l | grep key | awk '{print $9}' | cut -c1-4`

テキストから文字列を持ってくるところまではできたんだけど、
その文字列を一行づつ編集する方法がわからない、おしえて!

↓持ってきた文字列
aaaa
cccc
bbbb

一行づつ表示させるためにheadコマンドとtailコマンドを使った。
ループと、headコマンドで行数をインクリメントするのかなと。
ただ、それだとループの上限で最大行数の数を使う事になるんだろうけど、
行数を出す方法もわからないんだ

63 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:20:26 ]
おとなしくperlでもつかっとけ。

64 名前:62 mailto:sage [2008/04/14(月) 23:25:40 ]
>>63
>>62はパールだとできて、Cシェルだとできないもの?
シェルってなんでもできそうな印象だったんだけどなー

最近初めて面白くなってきたよ

65 名前:デフォルトの名無しさん mailto:sage [2008/04/14(月) 23:32:45 ]
なぜ底辺はcshが好きなんだろう?

66 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 00:07:13 ]
>>62
shで。

ls -l | grep key | awk '{print $9}' | cut -c1-4 | while read l; do
# $lに対してやりたいこと
done

67 名前:62 mailto:sage [2008/04/15(火) 00:16:37 ]
>>65
cshちゃんを悪く言わないで下さい

>>66
Bシェル?そんな簡単なのか
試してみる。ありがとー!

68 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:14:32 ]
特に宗教的理由が無いなら shell script は csh より bsh で組みなさい

69 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 07:17:38 ]
ところで、
Csh Programming Considered Harmful
って今はもうみえないんだっけ?

70 名前:デフォルトの名無しさん mailto:sage [2008/04/15(火) 11:25:24 ]
ググったら一発だった

71 名前:デフォルトの名無しさん [2008/04/16(水) 09:39:29 ]
unixの考え方の1つとしてよく言われる、「1つのことをうまくやれ」というやつについて。

具体的に1つ(1機能)ってのはどの程度のものなんでしょうか。
例えば今のlsって、詳細情報出したり、変更日付順にソートできたり、全然単機能
じゃないと思うんですけど。原則と現実のギャップというやつですか?



72 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 09:57:01 ]
>>71
> unixの考え方の1つとしてよく言われる、「1つのことをうまくやれ」というやつについて。
ファイルの内容をいじれるわけではないし, ディレクトリに対して操作ができる
わけでもないでしょ?
ディレクトリの内容をリスト表示するって事に特化していて, そのことに関して
だけはとてもうまくやっていると思うのだけど...


73 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 10:33:05 ]
例えばMS-DOSのDIRと比べてみると、
「〜バイトのファイルがあります」
「〜バイトが使用可能です」
とか勝手に付け加えたりしないのがUnix流。

もっとも、出力先が端末だったら複数カラムで表示したりする、とか
そういう機能は良くない、とみる向きもあるけどね。
("Program Design in the UNIX System Environment.")

74 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 13:10:10 ]
>>71
更新日時順でソートなんてlsにやらせなかったら何使ってやるのさ。

75 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 13:28:48 ]
>>73
ls -lもtotal出すよなあ、あれ出力使う時に余分。
tail +2しないといけない。

76 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 13:41:33 ]
ところで >>62 の ls -l | ... | awk って、
ls -1 じゃダメなん?


77 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:05:33 ]
>>71
UNIXの思想は基本的にミニマリズムでは無いと思う
djb tools はUNIX的なのか?
Perl は UNIXで広く受け入れられたが、これは異端なのか?

78 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 22:40:22 ]
UNIXのプログラムは何にせよメールが読めるまでに肥大化する

79 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:44:28 ]
メールの読めるlsはどこにありますか?

80 名前:デフォルトの名無しさん mailto:sage [2008/04/16(水) 23:58:18 ]
逆に考えるんだ。
lsもcdもEmacsの中にあるんだ、と。

81 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:00:07 ]
vi使いが来るぞー!



82 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:10:59 ]
ls -tr ~/Mail/inbox/ | tail -1 | xargs view

83 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 00:16:45 ]
MHですやん

84 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 08:44:17 ]
>>77
小さいものは美しい、ってのはミニマリズムじゃないの?

85 名前:デフォルトの名無しさん mailto:sage [2008/04/17(木) 10:16:41 ]
>>78
それ元ネタ確かMITで開発されてるプログラムは、だった希瓦斯

86 名前:高野光弘問題 [2008/05/20(火) 21:40:45 ]
Takano32,TAKANO Mitsuhiroこと高野光弘(日立製作所社員、日本UNIXユーザ会幹事)が
『32nd Diary』で「真性キチガイ」と障害者差別発言。さらに、2007年4月の入社後は、日立の機密も漏洩。
公益のため告発するも改善されないので、日立製作所に通報。

回答
「高野光弘という社員は存在する(本人は「嘘」と否定していた)
現在、管轄する部署が調査中
障害者差別発言に関しては許されるものではない」
また、漫画家鈴木健也による教祖様のようなひげの似顔絵を湮滅していたことも発覚。

これからどうすべきか、自分の頭で考えてくれることを期待します。
taka.no32.tk/diary/

87 名前:デフォルトの名無しさん [2008/05/27(火) 15:33:16 ]
>struct timeval tv;

の値って、
doubleの変数に入出力できたりしますか?

88 名前:デフォルトの名無しさん mailto:sage [2008/05/30(金) 00:26:33 ]
はい

89 名前:デフォルトの名無しさん mailto:sage [2008/06/01(日) 17:58:49 ]
> ムー板に書きましたが、誰も相手にしてくれません:
pc11.2ch.net/test/read.cgi/unix/1127388574/211-221

90 名前:デフォルトの名無しさん mailto:sage [2008/06/02(月) 08:47:43 ]
 ↑
おめ、今頃それ貼ってもおせーよ!
プゲラッチョwww

91 名前:高野光弘問題 [2008/06/11(水) 23:18:10 ]
takano32,TAKANO Mitsuhiroこと高野光弘(日立製作所社員、日本UNIXユーザ会幹事)が、
自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題。

1981年11月12日 千葉県のディズニーランドのそばで誕生
2001年4月1日 千葉大学に入学
2005年4月1日 千葉大学大学院へ進学、日本UNIXユーザ会に入会
2007年4月1日 日立製作所に入社、神奈川県秦野市の寮へ
2007年8月22日 「ついに職場で人が倒れた」と公表
2007年11月13日 「情報漏えい」を言う上司に「死んだほうがいいよ」と暴言
2007年12月28日 「社内システムクソうんこ」と発言し、仕組みも暴露
2008年5月23日 機密漏洩問題について一応の謝罪
2008年5月26日 「給料泥棒とかうんぬん言われた」と謝罪を忘れて告白
2008年5月27日 「心バキバキ川田くん」と前日の発言者の名前を公言
2008年5月31日 「キチガイ」と日立のユーザーに障害者差別発言を連発

2006年10月27日(日立製作所に入社前に忠告されたこと)
「日記やコメントの投稿日時から勤務時間に業務外のことをしていることが判明」は
某社の某親会社が 2ch で祭られたように、NG です。

6月も勤務時間中に更新し続ける高野光弘君の『32nd diary』にツッコミをどうぞ



92 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:44:09 ]
forkして子プロセスを作ってるんですが、
親プロセスから子プロセスの生存確認する方法ってありますか?

93 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 13:46:39 ]
kill(2)しろ。
signal番号0で。

94 名前:92 mailto:sage [2008/06/14(土) 13:56:40 ]
>>93

95 名前:92 mailto:sage [2008/06/14(土) 13:57:10 ]
↑間違い。すいません
>>93

96 名前:92 mailto:sage [2008/06/14(土) 13:58:44 ]
>>93
ありがとうございます。
なんとなくやり方がわかった気がします。

97 名前:デフォルトの名無しさん mailto:sage [2008/06/14(土) 23:23:50 ]
SIGCLDをトラップしろ

98 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 02:19:44 ]
>>97ある時に知る方法じゃなくて、
ずっと管理しておく方法。

99 名前:デフォルトの名無しさん mailto:sage [2008/06/15(日) 16:14:29 ]
>>98
俺もそう思ったが、別に97でもいいんじゃないのかな。
ある時にある子プロセスが生きてるか知ろうとするプログラムならば
当然pidを含む子プロセスの情報を保持しているわけで。

100 名前:98 mailto:sage [2008/06/15(日) 16:36:19 ]
悪いと言っているのではなく解説したまで。
質問するような人がすぐに理解できるとは限らないので。

101 名前:デフォルトの名無しさん mailto:sage [2008/06/17(火) 22:28:52 ]
質問です。書籍『Understanding Unix/Linux Programming』の49ページ、
utmp構造体のutmpメンバ(time_t型)を受け取り、整形して表示する関数なんですが、

void showtime(long timeval)
{
char *cp;
cp = ctime(&timeval);
printf("%12.12s", cp+4);
}

このコードの書き手(著者)が、仮引数の型をtime_tでなくlongにした意図としては
どのようなものが考えられるでしょうか?
自分にはtime_tの実際の型に依存した良くないコーディングに見えますが、
何か特別な理由があるのではと思って質問しました。よろしくお願いします。



102 名前:高野光弘事件 [2008/06/18(水) 01:14:04 ]
takano32,TAKANO Mitsuhiroこと高野光弘
(26歳、日立製作所エンタープライズサーバ事業部(秦野地区)社員、日本UNIXユーザ会幹事)が
自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題が、とうとう事件になった模様。

2chで祭られて、さらに自分から燃料投下するなんて。誰か彼の凶行を止めてくれることを願って張ります。
2008-6-14 予告 心バキバキ川田くんを殺します。
2008-6-15 日本の警察をみた。いつも行動力がないと言われている日本の警察ですが、今日は変な行動力をみた。
理不尽で半端な行動力なので、もう少しガイドラインを固めないとダメだと思った
(現場の人は悪くないので、上がきちんとしろ、という意味)。 予告.in 予告.out 事情を話し、くだんの書き込み元IPアドレスなどを回答した。

理不尽なのは、あなたが公然と書いた「殺します」、「死んだほうがいいよ」、「クソ」、「うんこ」、「バカ」、「キチガイ」という発言と、
公共の場で自分から個人情報と機密を公開しているのに、文句を言うということなのではないでしょうか?

1946年12月19日生まれのお母さん、釣りが趣味のお父さん、二人のお姉さん、高校の同級生で漫画家の鈴木健也さん、どうか彼を止めてください。
日立グループの方、日本UNIXユーザ会の方、公益のためにもお願いします。
誰か『32nd diary』での高野光弘君の凶行を止めてください。






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<24KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef