UNIXプログラミング質問すれ Part9
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001デフォルトの名無しさん
2008/03/18(火) 08:10:34前スレ
Part8 http://pc11.2ch.net/test/read.cgi/tech/1147946176/
Part7 http://pc8.2ch.net/test/read.cgi/tech/1127373405/
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
0002デフォルトの名無しさん
2008/03/19(水) 11:09:350003デフォルトの名無しさん
2008/03/19(水) 11:19:24getenv("TZ")で取れない?
0004デフォルトの名無しさん
2008/03/19(水) 13:31:11gccで、ディレクトリパスのデリミタは環境変数になっていますか?
0005デフォルトの名無しさん
2008/03/19(水) 13:42:19> 実行ファイルのディレクトリとれますか?
Linuxだったらreadlink("/proc/self/exe", ...)で。一般的な方法はない。
> gccで、ディレクトリパスのデリミタは環境変数になっていますか?
C/C++でのことなら、ないと思う。UNIXなら固定でいいんじゃない?
00064
2008/03/19(水) 13:58:41>実行ファイルのディレクトリ
>>Linuxだったらreadlink("/proc/self/exe", ...)で。
BSDだとどうなりますk?
>gccで、ディレクトリパスのデリミタは環境変数
>>C/C++でのことなら、ないと思う
ifdef + define するしかないですか。
でもそういった、ヘッダーファイルとか、オプソでありそうな。。。
00074
2008/03/19(水) 15:33:33POSIX準拠だったので使えることは分かりましたが、使い方が分かりません。
先頭の引数は何なのか?_?
0008デフォルトの名無しさん
2008/03/19(水) 15:53:34BSD では一般解はないと思う。NetBSD だと Linux と同じ手が使えるみたい。
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC23
00094
2008/03/19(水) 16:01:20それ、良いリンクですね。
Mac OS X だと、"/proc/self/exe"ではうまくいきませんね。
argv[0]を見ようとしたらwxWidgetsでmainが見れなかったorz
00104
2008/03/19(水) 16:11:38これで余韻だろうか。
0011デフォルトの名無しさん
2008/03/20(木) 01:57:42プログラミングは迷路を突破するみたいに手探りでやるものじゃない。
そうやって書かれたプログラムを他の環境でも問題なく動くと考えるのは、
ある迷路を突破した道順が他の迷路でも通用すると期待するくらい無謀。
0012デフォルトの名無しさん
2008/03/21(金) 09:50:00ウゼー
0013デフォルトの名無しさん
2008/03/21(金) 22:57:54自演を思いつきMac板へ向かったのである。
0014デフォルトの名無しさん
2008/03/23(日) 17:13:1664bit版を使う利点はメモリが4GB以上使えることくらい??
0015デフォルトの名無しさん
2008/03/23(日) 19:54:190016デフォルトの名無しさん
2008/03/23(日) 20:05:29ワラタw
Mac 板で似た質問を見たと思ったら、ここ由来だったのね。
>>14
LP64 環境だと仮定して、、、
long が 64bit になっても良い様に書いていれば結果は変わらない
x86 だと仮定して、、、
レジスタが増えるから多くの場合で 64bit の方が速いという利点もある
勿論デメリットもある
0017デフォルトの名無しさん
2008/03/27(木) 09:30:24みたいな関数はありますか?
0018デフォルトの名無しさん
2008/03/27(木) 09:38:56POSIX的には無いかと。
ICUでも使うといいよ。
0020デフォルトの名無しさん
2008/03/27(木) 19:07:070021デフォルトの名無しさん
2008/03/27(木) 21:30:200022デフォルトの名無しさん
2008/03/28(金) 00:46:460024デフォルトの名無しさん
2008/03/28(金) 12:50:140025デフォルトの名無しさん
2008/03/28(金) 15:29:59ttp://www.emaki.minidns.net/Programming/tools/icu/index.html
みつけますた。
0026デフォルトの名無しさん
2008/03/28(金) 16:48:43ucnv_openの引数で、"windows-31j"、"shift_jis"、"EUC-JP"といった文字が指定されていますが、
この一覧はどこにあるのでしょう?
ソース全文検索かけても出てきませんが???
002726
2008/03/28(金) 17:12:050028デフォルトの名無しさん
2008/03/28(金) 17:41:45002926
2008/03/28(金) 17:55:40そのコマンド打ってみて分りましたが、
OSが文字コードに関する情報(のファイル)を持っていて、
それによって変換可能な文字コードかどうか決まるわけですね。
BSD だとして、GUIアプリが受け取る文字コードが何か取得する方法を教えてください。
環境変数なのかなぁ?
0030デフォルトの名無しさん
2008/03/28(金) 18:13:50nl_langinfo(CODESET) だったような、たしか
003126
2008/03/28(金) 18:19:08ありましたヽ(゚∀゚)ノ
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/nl_langinfo.3.html
あ〜、これでやっとコーディングに入れますorz
0032デフォルトの名無しさん
2008/03/28(金) 22:03:28マルチ乙
しかも>>4と同一人物
0033デフォルトの名無しさん
2008/04/06(日) 16:42:260034デフォルトの名無しさん
2008/04/06(日) 16:52:160035デフォルトの名無しさん
2008/04/07(月) 09:06:19HDDの使用量や全容量を取得したいのですがどのようにすればよいのでしょうか?
(dfみたいな機能があればなおさらいいです.)
0036デフォルトの名無しさん
2008/04/07(月) 09:21:340037デフォルトの名無しさん
2008/04/07(月) 11:24:59いいこと教えてあげよう。OSにもよるだろうが、
man dfするとSEE ALSOに関連システムコールが書いてあったりもするもんだ。
0038デフォルトの名無しさん
2008/04/07(月) 12:46:15書いてなかった
0039デフォルトの名無しさん
2008/04/07(月) 13:06:39NetBSD, Solaris, FreeBSD, HP-UX, Darwin は書いてあった
0040デフォルトの名無しさん
2008/04/07(月) 13:28:07なんていう奴?
0041デフォルトの名無しさん
2008/04/07(月) 16:46:330042デフォルトの名無しさん
2008/04/07(月) 16:59:43ありー
0043デフォルトの名無しさん
2008/04/10(木) 17:45:110044デフォルトの名無しさん
2008/04/10(木) 17:56:450045デフォルトの名無しさん
2008/04/10(木) 18:25:17まず存在しないから、64bitでおk。
0046デフォルトの名無しさん
2008/04/10(木) 22:01:10そのときそのプログラムが使われ続けていないとも限らない、というのがY2Kの教訓。
0047デフォルトの名無しさん
2008/04/10(木) 22:40:420048デフォルトの名無しさん
2008/04/10(木) 22:49:570049デフォルトの名無しさん
2008/04/11(金) 09:37:44char が16bitのものは今でもある。
0050デフォルトの名無しさん
2008/04/11(金) 09:38:230051デフォルトの名無しさん
2008/04/11(金) 09:43:40そう。CHAR_BIT = 16ということ。
0052デフォルトの名無しさん
2008/04/11(金) 18:01:330053デフォルトの名無しさん
2008/04/13(日) 06:53:130054デフォルトの名無しさん
2008/04/13(日) 08:27:440055デフォルトの名無しさん
2008/04/13(日) 11:16:21一番近そうな質問スレッドなので質問させていただきます.
共有ライブラリの動的リンクについての質問です,
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
0056デフォルトの名無しさん
2008/04/13(日) 11:26:46最悪libgomp.aをstatic linkしてしまえばいい。
ただ結構コンパイラのバージョン依存なのでそこんとこは注意。
005755
2008/04/13(日) 13:15:26実行バイナリに,ロードするライブラリのパスが記録されると勘違いしていたのですが,
実際には,コンパイル時には "libgomp.so.1" という情報が記録されるだけのようです.
実行時にロードするライブラリのパスは,
実行時に ldconfig で認識されているライブラリの中から上から順に同名の物を探して決定しているようです.
>>56
どうもありがとうございます.
コンパイラに合うバージョンの libgomp.a を静的にリンクするのが
一番安全そうなので,そうすることにします.
0058デフォルトの名無しさん
2008/04/14(月) 00:36:44-R(コンパイル時)や
LD_LIBRARY_PATH環境変数(実行時)で指定できる。
0060デフォルトの名無しさん
2008/04/14(月) 09:47:570061デフォルトの名無しさん
2008/04/14(月) 10:48:47リンク作業で直接指定してリンクする。
0062デフォルトの名無しさん
2008/04/14(月) 23:12:11あるディレクトリのファイルを検索して、該当するファイルの先頭4桁を使って、
テキストからその4桁に対応する文字列を持ってきたいとする。
↓この"key"に検索したいファイル名の文字列を入れる。
set READKEY = `ls -l | grep key | awk '{print $9}' | cut -c1-4`
テキストから文字列を持ってくるところまではできたんだけど、
その文字列を一行づつ編集する方法がわからない、おしえて!
↓持ってきた文字列
aaaa
cccc
bbbb
一行づつ表示させるためにheadコマンドとtailコマンドを使った。
ループと、headコマンドで行数をインクリメントするのかなと。
ただ、それだとループの上限で最大行数の数を使う事になるんだろうけど、
行数を出す方法もわからないんだ
0063デフォルトの名無しさん
2008/04/14(月) 23:20:26006462
2008/04/14(月) 23:25:40>>62はパールだとできて、Cシェルだとできないもの?
シェルってなんでもできそうな印象だったんだけどなー
最近初めて面白くなってきたよ
0065デフォルトの名無しさん
2008/04/14(月) 23:32:450066デフォルトの名無しさん
2008/04/15(火) 00:07:13shで。
ls -l | grep key | awk '{print $9}' | cut -c1-4 | while read l; do
# $lに対してやりたいこと
done
0068デフォルトの名無しさん
2008/04/15(火) 07:14:320069デフォルトの名無しさん
2008/04/15(火) 07:17:38Csh Programming Considered Harmful
って今はもうみえないんだっけ?
0070デフォルトの名無しさん
2008/04/15(火) 11:25:240071デフォルトの名無しさん
2008/04/16(水) 09:39:29具体的に1つ(1機能)ってのはどの程度のものなんでしょうか。
例えば今のlsって、詳細情報出したり、変更日付順にソートできたり、全然単機能
じゃないと思うんですけど。原則と現実のギャップというやつですか?
0072デフォルトの名無しさん
2008/04/16(水) 09:57:01> unixの考え方の1つとしてよく言われる、「1つのことをうまくやれ」というやつについて。
ファイルの内容をいじれるわけではないし, ディレクトリに対して操作ができる
わけでもないでしょ?
ディレクトリの内容をリスト表示するって事に特化していて, そのことに関して
だけはとてもうまくやっていると思うのだけど...
0073デフォルトの名無しさん
2008/04/16(水) 10:33:05「〜バイトのファイルがあります」
「〜バイトが使用可能です」
とか勝手に付け加えたりしないのがUnix流。
もっとも、出力先が端末だったら複数カラムで表示したりする、とか
そういう機能は良くない、とみる向きもあるけどね。
("Program Design in the UNIX System Environment.")
0074デフォルトの名無しさん
2008/04/16(水) 13:10:10更新日時順でソートなんてlsにやらせなかったら何使ってやるのさ。
0075デフォルトの名無しさん
2008/04/16(水) 13:28:48ls -lもtotal出すよなあ、あれ出力使う時に余分。
tail +2しないといけない。
0076デフォルトの名無しさん
2008/04/16(水) 13:41:33ls -1 じゃダメなん?
0077デフォルトの名無しさん
2008/04/16(水) 22:05:33UNIXの思想は基本的にミニマリズムでは無いと思う
djb tools はUNIX的なのか?
Perl は UNIXで広く受け入れられたが、これは異端なのか?
0078デフォルトの名無しさん
2008/04/16(水) 22:40:220079デフォルトの名無しさん
2008/04/16(水) 23:44:280080デフォルトの名無しさん
2008/04/16(水) 23:58:18lsもcdもEmacsの中にあるんだ、と。
0081デフォルトの名無しさん
2008/04/17(木) 00:00:070082デフォルトの名無しさん
2008/04/17(木) 00:10:590083デフォルトの名無しさん
2008/04/17(木) 00:16:450084デフォルトの名無しさん
2008/04/17(木) 08:44:17小さいものは美しい、ってのはミニマリズムじゃないの?
0085デフォルトの名無しさん
2008/04/17(木) 10:16:41それ元ネタ確かMITで開発されてるプログラムは、だった希瓦斯
0086高野光弘問題
2008/05/20(火) 21:40:45『32nd Diary』で「真性キチガイ」と障害者差別発言。さらに、2007年4月の入社後は、日立の機密も漏洩。
公益のため告発するも改善されないので、日立製作所に通報。
回答
「高野光弘という社員は存在する(本人は「嘘」と否定していた)
現在、管轄する部署が調査中
障害者差別発言に関しては許されるものではない」
また、漫画家鈴木健也による教祖様のようなひげの似顔絵を湮滅していたことも発覚。
これからどうすべきか、自分の頭で考えてくれることを期待します。
http://taka.no32.tk/diary/
0087デフォルトの名無しさん
2008/05/27(火) 15:33:16の値って、
doubleの変数に入出力できたりしますか?
0088デフォルトの名無しさん
2008/05/30(金) 00:26:330089デフォルトの名無しさん
2008/06/01(日) 17:58:49http://pc11.2ch.net/test/read.cgi/unix/1127388574/211-221
0090デフォルトの名無しさん
2008/06/02(月) 08:47:43おめ、今頃それ貼ってもおせーよ!
プゲラッチョwww
0091高野光弘問題
2008/06/11(水) 23:18:10自身の『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』にツッコミをどうぞ
0092デフォルトの名無しさん
2008/06/14(土) 13:44:09親プロセスから子プロセスの生存確認する方法ってありますか?
0093デフォルトの名無しさん
2008/06/14(土) 13:46:39signal番号0で。
0097デフォルトの名無しさん
2008/06/14(土) 23:23:500098デフォルトの名無しさん
2008/06/15(日) 02:19:44ずっと管理しておく方法。
0099デフォルトの名無しさん
2008/06/15(日) 16:14:29俺もそう思ったが、別に97でもいいんじゃないのかな。
ある時にある子プロセスが生きてるか知ろうとするプログラムならば
当然pidを含む子プロセスの情報を保持しているわけで。
010098
2008/06/15(日) 16:36:19質問するような人がすぐに理解できるとは限らないので。
0101デフォルトの名無しさん
2008/06/17(火) 22:28:52utmp構造体のutmpメンバ(time_t型)を受け取り、整形して表示する関数なんですが、
void showtime(long timeval)
{
char *cp;
cp = ctime(&timeval);
printf("%12.12s", cp+4);
}
このコードの書き手(著者)が、仮引数の型をtime_tでなくlongにした意図としては
どのようなものが考えられるでしょうか?
自分にはtime_tの実際の型に依存した良くないコーディングに見えますが、
何か特別な理由があるのではと思って質問しました。よろしくお願いします。
0102高野光弘事件
2008/06/18(水) 01:14:04(26歳、日立製作所エンタープライズサーバ事業部(秦野地区)社員、日本UNIXユーザ会幹事)が
自身の『32nd diary』で公然と日立の機密を開示し、障害者差別発言をしている問題が、とうとう事件になった模様。
2chで祭られて、さらに自分から燃料投下するなんて。誰か彼の凶行を止めてくれることを願って張ります。
2008-6-14 予告 心バキバキ川田くんを殺します。
2008-6-15 日本の警察をみた。いつも行動力がないと言われている日本の警察ですが、今日は変な行動力をみた。
理不尽で半端な行動力なので、もう少しガイドラインを固めないとダメだと思った
(現場の人は悪くないので、上がきちんとしろ、という意味)。 予告.in 予告.out 事情を話し、くだんの書き込み元IPアドレスなどを回答した。
理不尽なのは、あなたが公然と書いた「殺します」、「死んだほうがいいよ」、「クソ」、「うんこ」、「バカ」、「キチガイ」という発言と、
公共の場で自分から個人情報と機密を公開しているのに、文句を言うということなのではないでしょうか?
1946年12月19日生まれのお母さん、釣りが趣味のお父さん、二人のお姉さん、高校の同級生で漫画家の鈴木健也さん、どうか彼を止めてください。
日立グループの方、日本UNIXユーザ会の方、公益のためにもお願いします。
誰か『32nd diary』での高野光弘君の凶行を止めてください。
0103101
2008/06/21(土) 02:11:33> utmp構造体のutmpメンバ(time_t型)
utmp構造体のut_timeメンバ(time_t型)の間違いでした。
あれこれ考えた結果、time_tがdoubleとして定義されている可能性もなくはないので
(K&Rやmanには算術型としか記されてない)
void showtime(time_t timeval)
{
printf("%12.12s", ctime(&timeval) + 4);
}
のようにtime_tはtime_tのままでctimeに渡したほうがいいという結論に落ち着きました。
しばらくROMってきます。失礼しました。
0104デフォルトの名無しさん
2008/06/24(火) 07:13:39でも現実を知ってると long でもいいやってなるとも思う。
スタイルにどこまでこだわるかどうか、だね
http://ja.wikipedia.org/wiki/2038%E5%B9%B4%E5%95%8F%E9%A1%8C
> C言語の規格を定めた「ISO/IEC 9899:1999」では、time_t型の範囲や精度は
> いずれも処理系依存としているが、[2]time_t型は、伝統的には符号つき32ビット
> 整数(signed long int型)であり、最大値は (231 - 1) = 2,147,483,647 となる。
0105101
2008/06/24(火) 23:23:59>>101-102とか自分で書いていて理屈っぽいなとは思ってました。
今後はそのあたりの現実や伝統と折り合いをつけてコードを書くことにします。
0107デフォルトの名無しさん
2008/07/09(水) 10:48:42time_t hoge = time(NULL);
とするのと
time_t hoge;
time(&hoge);
するのと
どちらが良いのでしょう?
0108デフォルトの名無しさん
2008/07/09(水) 11:25:52しかし、time()は何でこんな妙な仕様なんだろ。
0109デフォルトの名無しさん
2008/07/09(水) 11:28:37int main(int ac, char **av){
time_t hoge;
time_t fuga;
time(&hoge);
fuga = time(NULL);
printf("%d, %d\n", hoge, fuga);
return 0;
}
どっちでもいいぜ
昔は time_t hoge = time(NULL); が出来なかったんだと思う。
0110デフォルトの名無しさん
2008/07/09(水) 14:35:150111デフォルトの名無しさん
2008/07/09(水) 17:40:02・メモリ消費が多くなる
・メモリアクセスにかかる時間が増える
0112デフォルトの名無しさん
2008/07/09(水) 17:57:0932で動かしてたら、その機能は生かせなくて速度が上がらないんだし
0113デフォルトの名無しさん
2008/07/09(水) 18:33:46後半はその通りなんだが...
メモリーバンド幅ってのは、その時旬のメモリに依存する
データ幅広げない限り内部が高速になっても, どこかで
メモリに足を引っ張られる
そもそも x86 系ってクロック上げられなくなったから
マルチコアに走ったんじゃなかったっけ?
0114デフォルトの名無しさん
2008/07/09(水) 18:35:360115デフォルトの名無しさん
2008/07/09(水) 22:22:2264bitレジスタ使うと(REXプレフィックスつけると)Intelのチップでは遅くなるって言うし。
0116デフォルトの名無しさん
2008/07/15(火) 00:09:56>主にポインタサイズが大きくなるので、
でも、普通のプログラムでポインタ変数の占める割合ってどのくらい?
普通は作業領域として割当てられる非ポインタ用の領域の方がだいぶ大きいような
気がするんだけど。
0117デフォルトの名無しさん
2008/07/15(火) 00:37:44<実体を指してるポインタの数> * <ポインタサイズ>
の方が,
<実体の個数> * <実体のサイズ>
より大きい.
なんて事もあった
0118デフォルトの名無しさん
2008/07/15(火) 11:03:42実行ファイルの中で、ある関数の実行コードに対応するバイト範囲を調べるのは
どうしたらいいでしょうか?
readelfコマンドを試してみましたが、どうもメモリ上でのアドレスは表示してくれるみたい
ですが、ファイル上でのバイト位置情報はないように見えました。
0119デフォルトの名無しさん
2008/07/15(火) 11:33:02objdump -S
0120デフォルトの名無しさん
2008/07/16(水) 00:28:01レスどうもです。ただ、やはりこの場合も エントリが 8048xxxx となって、
これは実行時のアドレスだと思うんですが....
あ、すっかり書き忘れていましたが Linux (ubuntu)/i386 と NetBSD/i386 を使っています。
もしかして別のプラットフォームだとファイル上のバイト位置で表示されたりします?
話は変わりますが、プログラムの開始アドレスが0x8048000あたりになってるわけですが、
これってどうやって決まってるんですかね? 何故この数字なのか、これより前の方の
アドレスは何かに使ったりするのか、etc...
0121デフォルトの名無しさん
2008/07/16(水) 00:55:090122デフォルトの名無しさん
2008/07/16(水) 01:21:39objdump -hfS
0123デフォルトの名無しさん
2008/07/16(水) 08:56:02適当なツールが本当にない、となればそうしますが...
>>122
結局、ヘッダー情報でのセクションのオフセットとディスアセンブルされた
アドレスの対比って感じですかね。
0124デフォルトの名無しさん
2008/07/17(木) 11:40:19「POSIX.1-2001 では、 PIPE_BUF バイト以下の write(2) は atomic に行われること、
つまりパイプへの出力データの書き込みは連続したシーケンスとして行われることを必須としている (MUST)。」
bashなどのシェルでプログラムを '|' でつないで起動したときって
標準出力でもPIPE_BUFより大きいと、atomicに行われない可能性があるんですか?
それとも、プログラム内で pipe(2)システムコールで作成したパイプにのみ当てはまることですか?
0125デフォルトの名無しさん
2008/07/17(木) 12:37:19そこの説明は、逆に「atomicであるとが保証される」ケースの説明。
0126デフォルトの名無しさん
2008/07/17(木) 14:44:50何があるのか聞こうと思ったのですが、違う部署の人なので探せなくって・・。
0127デフォルトの名無しさん
2008/07/17(木) 15:04:32CならGNU getoptでいいと思うよ。
0128デフォルトの名無しさん
2008/07/17(木) 17:51:330129デフォルトの名無しさん
2008/07/17(木) 18:10:17こんなふうにしてGPL汚染されていくわけですね。わかります。
0130デフォルトの名無しさん
2008/07/17(木) 21:12:320131デフォルトの名無しさん
2008/07/18(金) 15:08:020132デフォルトの名無しさん
2008/07/19(土) 22:29:02ttp://kzk9.net/column/unixfastestfilecopy.html
こちらのページの実装(2)にmmap()でのファイルコピーの紹介があるのですが
>int i = 0;
>assert(lseek(to, size - sizeof(int), 0L) >= 0);
>assert(write(to, (&i), sizeof(int)) == sizeof(int));
このlseek()とwrite()はコピー先のファイルに対してどういう処理をしているのでしょうか?
0133デフォルトの名無しさん
2008/07/19(土) 22:44:06見ないほうがいい
0134デフォルトの名無しさん
2008/07/19(土) 23:06:49三行見ただけでも、ページ内間違いだらけに違いないことがわかる。
0135デフォルトの名無しさん
2008/07/19(土) 23:26:340136デフォルトの名無しさん
2008/07/20(日) 00:16:22mmapのためのファイルサイズの確保。
0137デフォルトの名無しさん
2008/07/20(日) 00:26:450138デフォルトの名無しさん
2008/07/20(日) 01:33:550139デフォルトの名無しさん
2008/07/20(日) 02:41:37動作が似てるからって意味の全く異なるものを使うというのはおかしいな。
assertの式ってのはNDEBUG定義したら消滅していいコードだし。
ステータスをチェックしてエラー終了させたいなら、そういうマクロを自分で定義するべきじゃね。
#define CHECK(exp) (void)((exp) || (fprintf(stderr, "failed with condition %s at line %d\n", #exp, __LINE__),abort(),1))
とか。
0140デフォルトの名無しさん
2008/07/20(日) 05:06:54俺は使い捨てだったらエラーチェック自体やらんけどな。
で、忘れたころに引っ張りだしてきて動かなくて悩むと。
0141デフォルトの名無しさん
2008/07/20(日) 08:47:380142デフォルトの名無しさん
2008/07/20(日) 12:59:19使い捨ての場合、ある前提でコードを書くんだからその前提外は無視していいでしょ
0143デフォルトの名無しさん
2008/07/20(日) 13:47:31深入りするとmalloc/free問題みたいになりそうな気がする。
0144デフォルトの名無しさん
2008/07/20(日) 13:58:22> malloc/free問題
って何?
使い捨てのプログラムでfreeして終われとか、そんな話?
それだったら、ファイルのクローズすらしないが、俺は…
0146デフォルトの名無しさん
2008/07/20(日) 14:27:13標準入力もpollで調べています。
この場合、やはり1行読み取るには、C++やCの標準ライブラリではなく、
readを使って自力で1行読み取りを実装しなければならないですよね?
0147デフォルトの名無しさん
2008/07/20(日) 14:29:510148デフォルトの名無しさん
2008/07/20(日) 14:41:22> 標準入力もpollで調べています。
に必然性があると仮定してだけど。
0149デフォルトの名無しさん
2008/07/20(日) 14:53:45select/poll の後で fread とかだめだっけ?
posix 準拠なら getc_unlocked() とかなかったっけ?
0150デフォルトの名無しさん
2008/07/20(日) 15:55:25>>146はstdioすっとばしてシステムコールを使わないとダメという主張だったのか。
C/C++にnonblockingな「行入力」ルーチンがないから自作という話だと思っていたよ。
それなら理由となるのはstdioのバッファに入っているがユーザプログラムはまだ
読んでいないデータの有無くらいだろうけど、set(v)bufすればいい話だろうし。
読み違えていたようですんまそん。
0151デフォルトの名無しさん
2008/07/20(日) 15:57:33内容から判断つくとは思いますが、読みにくくてすいません。
0152デフォルトの名無しさん
2008/07/20(日) 16:16:47それだとpollで調べたら空だけど、stdioの入力バッファにデータが存在する場合があるのでダメ
>>146
バッファされてるかどうかなんて、stdioの構造体の中のメンバ見るだけで実現できるんだけど、
ライブラリ依存なのでconfigureとかで各OS各ライブラリで場合分けするか、自前でstdioモドキを実装するしかないね。
fsense(stdin) みたいな関数があればいいんだけど。
もしくはfunopenを使ってreadfnをSTDINのnonblocking readにしちゃうとか、
そもそも標準入力をRAW MODEにしちゃうとかかね。
0153デフォルトの名無しさん
2008/07/20(日) 16:44:50funopenはBSD系以外でも使えるの?
0154デフォルトの名無しさん
2008/07/20(日) 16:59:58結局1.9では諦めたんじゃなかったっけ?
0155デフォルトの名無しさん
2008/07/20(日) 17:19:10研究メインだとこうなっちゃうのかな
0156デフォルトの名無しさん
2008/07/20(日) 18:58:22あれ…ほんとだ。linuxとかには無いのか。知らなかった。
0157デフォルトの名無しさん
2008/07/20(日) 20:10:560158デフォルトの名無しさん
2008/07/20(日) 21:29:47#define _BSD_SOURCE
してるからBSDにもあるんじゃないの?
ただ>>146の要望には、
setvbufによる行バッファリングとfileno(3)+poll(2)で十分だと思う。
0159デフォルトの名無しさん
2008/07/20(日) 23:22:570160デフォルトの名無しさん
2008/07/23(水) 11:16:20UNIXのCでCVS+ant的な事をしたいんだけど、できる?
antじゃない方が良い?
0161デフォルトの名無しさん
2008/07/23(水) 13:12:370162デフォルトの名無しさん
2008/07/23(水) 13:36:02ant 使った事ないから他に何か無いかな、と。
0163デフォルトの名無しさん
2008/07/23(水) 14:21:18なんで使ったことないものが候補になるんだよ。
CVS+antって、具体的に何がしたいの?
0164デフォルトの名無しさん
2008/07/23(水) 14:30:08C言語だと、CVS と何を組み合わせると良いのでしょうか。
そもそもantで何が出来るか、あんまりわかってないのですが。。。
0165デフォルトの名無しさん
2008/07/23(水) 14:39:280166デフォルトの名無しさん
2008/07/23(水) 15:29:56CVSだけでおk
0167デフォルトの名無しさん
2008/07/23(水) 15:54:42UNIX上に最新ソース取得して、ビルドして、配布して、、、
というのを、なるべく自動化したいなと。
UNIX側に、そういうシェルスクリプト用意すれば良いって話?なのかな。
0168デフォルトの名無しさん
2008/07/23(水) 16:03:43なにがantなのかわからん
0169デフォルトの名無しさん
2008/07/23(水) 17:03:01antなら色々できそうな雰囲気あったので使ってみようと思ったんだけど、
今回は妥協の方向で。。。
0170デフォルトの名無しさん
2008/07/23(水) 17:35:110171デフォルトの名無しさん
2008/07/23(水) 20:32:590172デフォルトの名無しさん
2008/07/24(木) 14:30:47ant使うとどの辺が楽になるのか、どなたかプレゼンしてくれまいか。
0173デフォルトの名無しさん
2008/07/24(木) 14:37:10時間がないといっときながら2chみてるし
わけわかめ
0174デフォルトの名無しさん
2008/07/24(木) 17:00:58Javaの開発で使うときは楽ちんだけど、そうでなければ別に〜、という感じだよ。
makeでじゅうぶんですよ。
0175デフォルトの名無しさん
2008/07/25(金) 00:22:47こいつの信用度はどのぐらい?
0176デフォルトの名無しさん
2008/07/25(金) 02:15:53まあまあ信用してもいい
0177デフォルトの名無しさん
2008/07/30(水) 22:48:100178デフォルトの名無しさん
2008/08/04(月) 16:14:05open(char *, int, ...); で、
...に許されるのはmode_t一つです。
0179デフォルトの名無しさん
2008/08/06(水) 06:49:40UNIXの改行コードLFの時はうまく読み込めるのですが、
それ以外の時は読み込みに失敗します。
改行コードにかかわらず、読み込めるようなコードはどのように書けばよいのでしょうか?
0180デフォルトの名無しさん
2008/08/06(水) 07:06:01「失敗する」って具体的に何が起こるの?
よくわからんからコード晒して欲しいな。
0181デフォルトの名無しさん
2008/08/06(水) 11:24:370182デフォルトの名無しさん
2008/08/06(水) 12:23:360183デフォルトの名無しさん
2008/08/09(土) 17:29:070184デフォルトの名無しさん
2008/08/09(土) 19:00:48今はLFオンリーなのが多い。
何故CR + LFオンリーにしないのかは謎。
0185デフォルトの名無しさん
2008/08/10(日) 15:59:53execl("bin/cat", "cat", "foo.txt", NULL);
みたいに渡さないとダメなんですか?
第二引数のcatって冗長だと思うんですけど。
第一引数でcatって分かるじゃないですか。
0186デフォルトの名無しさん
2008/08/10(日) 16:03:08もっとも簡単なのを教えてください
Windowsなら、Visual BasicとかDelphiがあるので手軽なのですが...
0187デフォルトの名無しさん
2008/08/10(日) 16:48:42つ execl("/bin/sh", "-", NULL)
0188デフォルトの名無しさん
2008/08/10(日) 23:01:07GambasっていうBasic開発環境がある。
GUIポトペタもできて、使い勝手はVBに近い。
ものの試しにいじっただけなので、
どこまでのことが出来るかは知らないし
情報も少ないから初心者には導入が難しそう。
あとはWideStudioかな。
いろんな言語に対応してて、ハローワールド程度の
GUIならウィザードで作ってくれる。
それ以上のことがどこまで出来るかはしらない。
0189デフォルトの名無しさん
2008/08/11(月) 12:15:17C/C++プロジェクトを新規作成したときに
*.cppファイルや*.hファイルのテンプレートを入力できるんだが、
そこで使えるマクロ($AUTHORとか)を教えてほしいのだが。
0190189
2008/08/11(月) 12:16:130191デフォルトの名無しさん
2008/10/03(金) 15:37:54ncursesライブラリを使えばできるらしいのだけれども,やりたいことは,
topコマンドのようなものを作りたいだけなので,ncursesを持ち出すまでも
ないと思うのですが,参考資料等ないですか?
printfで制御コマンド直うちとかのレベルでOKです.
Linuxで書いてるのでLinuxでお願いします.
0192デフォルトの名無しさん
2008/10/03(金) 15:58:03端末の資料をさがすべき
0193デフォルトの名無しさん
2008/10/03(金) 17:51:57ウチの linux の top は libncurses.so を link してるように見えるが
0194デフォルトの名無しさん
2008/10/03(金) 18:46:360195デフォルトの名無しさん
2008/10/06(月) 10:10:05terminfo/termcapのライブラリ使えば?
topレベルなら簡単に実装できる。
cursesなら整形もやってくれるのでさらに楽だが。
0196デフォルトの名無しさん
2008/10/11(土) 17:56:440197デフォルトの名無しさん
2008/10/12(日) 12:10:19で簡単に取得できる。
0198デフォルトの名無しさん
2008/10/26(日) 11:54:55実行後シェルでenv打っても結果が反映されないです。
プロセスが消えても設定残す方法ってあるんですか?
ちなみにタイムゾーンの設定です。
0199デフォルトの名無しさん
2008/10/26(日) 12:44:07system("setx TZ JST-9");
0200デフォルトの名無しさん
2008/10/26(日) 13:14:250201デフォルトの名無しさん
2008/10/26(日) 15:12:42システムグローバルなものじゃないから無理
0202ヤマ
2008/10/26(日) 18:06:52どうぞお見知りおきを・・・
さっそく質問ですが、よく聞く『UNIX』『Linux』って呼ばれているものは
基本的に何に利用するものなのですか?
0203デフォルトの名無しさん
2008/10/26(日) 18:10:24コンピュータを操作するのに利用する。 OS ってやつだ。
http://ja.wikipedia.org/wiki/%E3%82%AA%E3%83%9A%E3%83%AC%E3%83%BC%E3%83%86%E3%82%A3%E3%83%B3%E3%82%B0%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0
0204デフォルトの名無しさん
2008/11/03(月) 21:36:58readdir_r()とかのシステムコール呼んだとき、
帰ってくるファイル名の文字エンコードって、どうやったらわかりますでしょうか?
0205デフォルトの名無しさん
2008/11/04(火) 03:19:49'\0'と'/'以外からなる任意のバイト列。
0206デフォルトの名無しさん
2008/11/04(火) 03:29:330207デフォルトの名無しさん
2008/11/04(火) 08:27:29ぶっちゃけUNIXによる。
またファイルシステムやmount時のoptionでも違う。
たとえばMac OS X + HFS+だとUTF-8でNFDになってる。
しかしUFSやNFS上だと、NFDじゃないファイルも作れる。
最近はUTF-8が多いけど、NFDになってるのはMac OS Xくらい。
それからLinuxはmount時にiocharsetオプションで、
内部コードから任期の文字コードにファイル名変換できる。
0208デフォルトの名無しさん
2008/11/04(火) 12:39:57ファイル名を現在のロケールの文字コードで表示したい、というときに
どうするべきなのか。
0209デフォルトの名無しさん
2008/11/04(火) 12:51:03nkfのソースでも読め
0210デフォルトの名無しさん
2008/11/04(火) 14:43:41POSIXには規定がないので、
まず自分で必要なものだけ実装したら?
通常UTF-8, EUC_Japanを想定しておけばいいと思う。
ただMac OS XはNFDされてるし、
SDカードをmountするとShift_JISのままのケースが結構あるようだ。
0211204
2008/11/05(水) 00:52:27結構混沌としてんですね。
UTF-8化してないCygwinもマルチバイトWinAPIと同じやつ(≒Shift_JIS)返してくるし…。
Latin-1の連中もいるし…(←これ重要)。
POSIXの規格に沿った優等生的方法じゃなくてもいいんで、
これで判断すれば大抵うまくいく、って方法があれば御教示願います。
(残りも誤検出ではなく、エラーで扱える方法ならなお良し。)
日本語ファイルが存在する保証もないので、実際のファイル名から検出、
は残念ながら無しの方向で。
あと、環境変数はLANG=Cです。むむむ…。
0212デフォルトの名無しさん
2008/11/05(水) 23:01:58環境変数G_FILENAME_ENCODINGに設定ヨロ」
みたいな話で我慢するしかないんじゃね。
http://library.gnome.org/devel/glib/unstable/glib-Character-Set-Conversion.html
0213デフォルトの名無しさん
2008/11/06(木) 07:01:23557 :名無しさん@お腹いっぱい。:2008/11/05(水) 03:57:38
HP-UX (11i)にHULFT 6を入れてファイル転送をしているのですが
タイムアウトのテストができなくて困っております・・・
ファイルの集信側にてファイル受信コマンド「utlrecv」
を実行しているのですが、このコマンドからtime out(戻り値:4)が
返されたときのテストをしたいです。
タイムアウト時間を最小値に設定してみたのですが
10秒単位でしか設定できないため
通信に最低でも10秒以上かからないとテストにならないようです。
しかし、HP-UXのケーブルを抜いたりできない環境です。
仕方ないので、巨大なファイルを転送したら10秒以上かかって
タイムアウトになるかと思ったのですがtime outにならず
(あまり巨大なファイルだとall queue errorが返されてしまった)
どうやってテストしたらいいのか悩んでおります・・・
HULFTなんてどこで質問していいのかわからなくて
スレ違いかもしれませんが、HULFT使ったことある方
アドバイスいただければと思います。
0214デフォルトの名無しさん
2008/11/06(木) 08:27:00accept(2)だけしてほったらかしのサーバを書けばいいじゃない。
ちなみにプログラム書けない奴は板違い。
0215デフォルトの名無しさん
2008/11/09(日) 20:38:42acceptを含む通信を行うので
acceptのみしか行わないサーバを作ってテストことは不可能だろJK
0216デフォルトの名無しさん
2008/11/09(日) 22:05:01サポートに聞いたほうが早いかもね
0217デフォルトの名無しさん
2008/11/10(月) 01:02:12receiveする方がacceptするの?
0218デフォルトの名無しさん
2008/11/10(月) 01:19:240220デフォルトの名無しさん
2008/11/10(月) 02:13:180221デフォルトの名無しさん
2008/11/10(月) 04:35:42でもUNIXでHULFTかよ。
ソケットでやり取りした方が簡単にテストできるよwwww
0222デフォルトの名無しさん
2008/11/10(月) 20:15:370223デフォルトの名無しさん
2008/11/13(木) 06:38:27配信前実行ジョブや配信後実行ジョブを登録することができます。
つまり、配信前実行ジョブとしてスリーかませればOK
番号順に処理が実行されるんで、�Aにスリープを仕込めば
集信側にレスポンスが返るまでに時間がかかる↓
■ファイル集信側 ■ファイル配信側
�@utlrecv (配信要求実行)→→→→→→→→→�A配信前ジョブ実行
↓
�Cファイル受信←←←←←←←←←←←←←←←�Bファイル配信
↓
�D配信後ジョブ実行
※ただし、HULFT 6からは、�Aでスリープかませても、
「ジョブ実行中だよ」メッセージが集信側に返されるので
タイムアウトにならないことが発覚。
この方法は使えないお。
ケーブルも抜けない場合、どうすりゃいいんだろうね・・・・(^-^A)
俺はでかいファイル送信して、その隙にケーブル抜いてテストしてたよ。
回線を一時的にブロックすると占有するアプリでも
作れとかいうのだろうか・・チョット得ろい人教えてくれ。
0224誤字スマソ
2008/11/13(木) 06:40:40配信前実行ジョブや配信後実行ジョブを登録することができます。
つまり、配信前実行ジョブとしてスリープかませればOK
番号順に処理が実行されるんで、�Aにスリープを仕込めば
集信側にレスポンスが返るまでに時間がかかる↓
■ファイル集信側 ■ファイル配信側
�@utlrecv (配信要求実行)→→→→→→→→→�A配信前ジョブ実行
↓
�Cファイル受信←←←←←←←←←←←←←←←�Bファイル配信
↓
�D配信後ジョブ実行
※ただし、HULFT 6からは、�Aでスリープかませても、
「ジョブ実行中だよ」とのメッセージが集信側に返されるので
タイムアウトにならないことが発覚。
この方法は使えないお。
ケーブルも抜けない場合、どうすりゃいいんだろうね・・・・(^-^A)
俺はでかいファイル送信して、その隙にケーブル抜いてテストしてたよ。
回線を一時的にブロックするとか占有するアプリでも
作れとかいうのだろうか・・チョット得ろい人教えてくれ。
0225デフォルトの名無しさん
2008/11/13(木) 09:51:440226デフォルトの名無しさん
2008/11/13(木) 10:21:290227デフォルトの名無しさん
2008/11/13(木) 10:27:570228デフォルトの名無しさん
2008/11/13(木) 11:41:260229デフォルトの名無しさん
2008/11/14(金) 02:03:18OSはHP-UXです。
ncursesをインストールしようとおもい、
./configure --prefix=$HOME --enable-widec
というオプションをつけてコンパイルし
ホームディレクトリ以下にインストールしました。
早速簡単なサンプルプログラムを書いて
gcc hoge.c -lncursesw -I/home/hogehoge/include/ncursesw/
というコンパイルオプションをつけてコンパイルしたのですが、
hoge.c:1 から include されたファイル中:
/home/hogehoge/include/ncursesw/ncurses.h:66:34: error: ncursesw/ncurses_dll.h: そのようなファイルまたはディレクトリはありません。
/home/hogehoge/include/ncursesw/ncurses.h:141:29: error: ncursesw/unctrl.h: そのようなファイルまたはディレクトリはありません。
In file included from hoge.c:1:
と、エラーが出てしまいます。
ですが、
:~/hoge $ ls -l ~/include/ncursesw/
合計 784
-rw-r--r-- 1 meso users 79973 11月 12日 06:25 curses.h
-rw-r--r-- 1 meso users 6591 11月 12日 06:25 cursesapp.h
rw-r--r-- 1 meso users 2891 11月 12日 06:25 eti.h
-rw-r--r-- 1 meso users 3947 11月 12日 06:25 nc_tparm.h
lrwxrwxr-x 1 meso users 8 11月 12日 06:25 ncurses.h -> curses.h
-rw-r--r-- 1 meso users 3898 11月 12日 06:25 ncurses_dll.h
-rw-r--r-- 1 meso users 3779 11月 12日 06:25 panel.h
-rw-r--r-- 1 meso users 3014 11月 12日 06:25 unctrl.h
とインクルードファイルは存在しています。
どのようにコンパイルオプションをかえれば
うまくコンパイルされるでしょうか ?
0230デフォルトの名無しさん
2008/11/14(金) 10:01:18-I/home/hogehoge/include/ncuresesw/
を
-I/home/hogehoge/include
に変え、
hoge.c で
#include <ncureses.h>
を
#include <ncuresesw/ncureses.h>
以下略
0231デフォルトの名無しさん
2008/11/15(土) 21:34:44おそくなりましたが、有り難うございます。
0232デフォルトの名無しさん
2008/11/19(水) 00:23:38C言語から呼び出すべき関数/システムコールをご存知の方がいましたら、
ポインタでもかまいませんので教えて頂けないでしょうか。
処理時間に制約の少ない、かつ、CPU100%となるようなプログラムがあり、
別プロセスに影響を与えないように実行制限をかけるため、また、発熱を
押さえるため、一定以上のCPU使用率を超えた場合に SIGSTOP, SIGCONT を
送って、数秒平均で見ると CPU 使用率を一定以下に保たせるような
プログラムを作ろうとしています。
長文すみません、どなたかヒントをおしえて頂きたくお願いします。
0233232
2008/11/19(水) 00:25:10Mac OS X なので vmstat, /proc が無いのだと思います。
# 知らないパスの中に埋もれてるだけなのかも...。
0234デフォルトの名無しさん
2008/11/19(水) 00:45:35http://stackoverflow.com/questions/220323/determine-process-info-programmatically-in-darwinosx
0235232
2008/11/19(水) 01:07:28ページ上部のものは自身のプロセス情報ですね。
コメント内のlibproc.hあたりに宝の山が眠ってる予感。
調べてみます。ありがとう。
0236デフォルトの名無しさん
2008/11/19(水) 08:59:31http://www.opensource.apple.com/darwinsource/10.5.5/
のadv_cmds-119にpsのソースがある。
それから、
$ sudo ktrace ps u
$ kdump
すると大体の流れが分かる。(ktrace.outをカレントディレクトリに作るので注意)
0237232
2008/11/19(水) 23:57:4210.5.5 + Xcode ですが locate ktrace で見つかりませんでした。
0238デフォルトの名無しさん
2008/11/20(木) 12:33:500239デフォルトの名無しさん
2008/11/20(木) 13:43:18何言ってるんだコイツ・・・
0240デフォルトの名無しさん
2008/11/20(木) 15:45:060241デフォルトの名無しさん
2008/11/20(木) 16:00:000242デフォルトの名無しさん
2008/11/20(木) 16:03:370243デフォルトの名無しさん
2008/11/20(木) 17:15:14一定の基準を満して金払えばUNIXを名乗れる。
*BSDはUNIXを名乗れない。もちろんLinuxも。
ただ、それとUNIXプログラミング的「普通」とは、また別の話。
0244デフォルトの名無しさん
2008/11/20(木) 20:30:4810.4だとこんな感じだが。
$ lsbom /Library/Receipts/BSD.pkg/Contents/Archive.bom | egrep /usr/bin/ktrace
./usr/bin/ktrace 100555 0/0 34740 727828848
0245デフォルトの名無しさん
2008/11/21(金) 14:10:48man dapptraceだな。
本家FreeBSDの変更に追従。
0246デフォルトの名無しさん
2008/11/21(金) 20:08:33>商標の問題だからね。
>一定の基準を満して金払えばUNIXを名乗れる。
どんな基準かちゃんと知ってる?
0247デフォルトの名無しさん
2008/11/21(金) 21:11:030248デフォルトの名無しさん
2008/11/21(金) 21:45:310249デフォルトの名無しさん
2008/11/22(土) 08:29:40良く知らないなら http://www.unix.org/ のドキュメントを読むといいよ
0250デフォルトの名無しさん
2008/11/22(土) 15:40:24Linuxとか
0251デフォルトの名無しさん
2008/11/23(日) 03:32:380252デフォルトの名無しさん
2008/11/25(火) 00:19:31メモリをファイルとして扱う関数って無いでしょうか?
ファイルディスクリプタを介してメモリを読み書きしたいのですが...
0253デフォルトの名無しさん
2008/11/25(火) 00:36:12デスクリプタの継承は必要?
0254デフォルトの名無しさん
2008/11/25(火) 22:17:01継承は必要有りません。
0255デフォルトの名無しさん
2008/11/26(水) 00:58:550256デフォルトの名無しさん
2008/11/26(水) 04:38:44>fmemopen
うぉ、POSIX準拠じゃないのか...
有り難うございます!
0257デフォルトの名無しさん
2008/11/26(水) 15:40:320258デフォルトの名無しさん
2008/11/26(水) 17:08:500259デフォルトの名無しさん
2008/11/27(木) 01:29:500260デフォルトの名無しさん
2008/11/29(土) 01:04:43DOSコマンドでも同じ方法あるのでしょうか・・・
16937が返された
unset $$ってやってみた
bash: unset: `16937': not a valid identifier
ふむふむ、と思って
ps x | grep 16937
16937 pts/2 Ss 0:00 -/bin/bash
このbash のPIDだった
0262デフォルトの名無しさん
2008/11/29(土) 05:48:510263デフォルトの名無しさん
2008/11/29(土) 06:35:550264デフォルトの名無しさん
2008/11/29(土) 09:49:050265デフォルトの名無しさん
2008/11/29(土) 09:57:16何故エコーを見る。変数参照はシェルの仕事だ。
0266デフォルトの名無しさん
2008/11/29(土) 13:33:54レスをみると判るように、
manで引くべき単語すらわからないから無理
0267デフォルトの名無しさん
2008/11/29(土) 14:58:410268デフォルトの名無しさん
2008/11/29(土) 15:25:18ディレクトリ配下全文検索した方が早い
0269デフォルトの名無しさん
2008/11/29(土) 16:47:49$$
さぁ、どういう事か説明してもらおうか
0270デフォルトの名無しさん
2008/11/29(土) 17:23:080271デフォルトの名無しさん
2008/11/29(土) 17:45:580272デフォルトの名無しさん
2008/11/29(土) 18:20:21おまいさんはPATHを設定するのにechoコマンドを調べるのか?
0273デフォルトの名無しさん
2008/11/29(土) 18:22:270274デフォルトの名無しさん
2008/11/30(日) 15:11:57既存ファイルを削除して、そのファイル名で新規作成する動作指定ってあるかな?
ファイルが存在していても新規にファイルを作成するような動作をさせたい
ググってみたけど一回removeで削除するしかないと判断しましたが自信がありませぬ
0275デフォルトの名無しさん
2008/11/30(日) 15:15:29所有者やアクセス許可フラグなんかの話だとするなら
作り直すしかない気がする
0276デフォルトの名無しさん
2008/11/30(日) 15:24:11JMプロジェクトに普通に書いてありますね…
すんません、おかげで早く帰れそうです
0277デフォルトの名無しさん
2008/12/02(火) 04:12:070278デフォルトの名無しさん
2008/12/02(火) 12:46:02それは既存ファイルを変更するので>>274の要求を満たさない。
0279デフォルトの名無しさん
2008/12/02(火) 13:02:03テンポラリファイル作っておいてからrename(2)かね。
0280デフォルトの名無しさん
2008/12/03(水) 00:07:47満たしてるだろ
0281デフォルトの名無しさん
2008/12/03(水) 00:13:21誰かがファイルをオープンしたままの場合、
どういう扱いにする仕様なのか、俺もちょっと気になったけど、
>>274が何も言わないので、放置しといた。
0282デフォルトの名無しさん
2008/12/03(水) 03:01:090283デフォルトの名無しさん
2008/12/03(水) 12:57:580284デフォルトの名無しさん
2008/12/04(木) 12:36:13仮に>>281のいうとおりだとしても>>279でFA。
0285デフォルトの名無しさん
2008/12/23(火) 12:33:510と1って標準入力と標準出力ですよね?これを返すことってあるのでしょうか??
/*
* Reserve two descriptors so that the real pipes won't get
* descriptors 0 and 1 because that will screw up dup2 below.
*/
if (pipe(reserved) < 0)
fatal("pipe: %s", strerror(errno));
/* Create a socket pair for communicating with ssh. */
if (pipe(pin) < 0)
fatal("pipe: %s", strerror(errno));
if (pipe(pout) < 0)
fatal("pipe: %s", strerror(errno));
/* Free the reserved descriptors. */
close(reserved[0]);
close(reserved[1]);
0286デフォルトの名無しさん
2008/12/23(火) 12:39:580288デフォルトの名無しさん
2008/12/23(火) 15:32:070289デフォルトの名無しさん
2008/12/23(火) 15:33:590290デフォルトの名無しさん
2008/12/23(火) 15:51:59/dev/nullを二つオープンすればいいのにな。
0291デフォルトの名無しさん
2009/01/04(日) 16:47:560292デフォルトの名無しさん
2009/01/04(日) 17:10:050293デフォルトの名無しさん
2009/01/04(日) 17:18:07pthread_mutexがプロセス間で使えます。
0294デフォルトの名無しさん
2009/01/05(月) 20:08:48以前韓国を打ち破ったのは誰か知らない、小学生や、他サイトの管理人がVIPを馬鹿にしている!
全員集結せよ。そして全員で打ち倒すのだ!
もし時間がない人は、この文章をそのまま他のスレに貼ってほしい!
対策本部
http://takeshima.2ch.net/test/read.cgi/news4vip/1231149782/
今こそ Vipperの意地を見せつけるのだ!
0295デフォルトの名無しさん
2009/01/05(月) 21:07:410296デフォルトの名無しさん
2009/01/11(日) 23:06:04(Imlibはあるのですが…)
それとも、画像ファイルを表示するライブラリは、
Imlib2以外に良いものがあるのでしょうか
0297デフォルトの名無しさん
2009/01/13(火) 11:15:050298デフォルトの名無しさん
2009/01/15(木) 18:27:46シグナルハンドラを実行させたいのですがプログラムを実行するとシグナルハンドラが
実行されないままSegmentation faultと表示されて終了してしまいます。
どうすればいいでしょうか?
ちなみにシェルから直接そのプロセスにシグナルを送ったら変更したシグナルハンドラが
実行されました。
一応ソースがこれです。
http://kansai2channeler.hp.infoseek.co.jp/cgi-bin/joyful/img/8649.c
0299デフォルトの名無しさん
2009/01/15(木) 19:07:42sa.sa_handler=your_sighandler_function_like_print_message;
sigaction(SIGSEGV,&sa,NULL); /* set current sigaction with sa */
最小コードはこんな感じかね…?
0300デフォルトの名無しさん
2009/01/15(木) 20:57:15レスありがとうございます。
しかしシグナルハンドラが実行されないままSegmentation faultと表示されて終了してしまいます。
プログラム中のSegmentation faultは変更が適用されないんですかね・・・
0301デフォルトの名無しさん
2009/01/15(木) 21:01:57まずsigaltstackでaltstackを用意しておいて、
sigactionで設定するときにsa_flagsにSA_ONSTACKを指定しないとダメ。
SIGSTKSZが出てこなかったんだが、どこで定義されてんだろ。
/* prepare altstack */
stack_t t;
t.ss_sp = malloc(10240);
t.ss_flags = 0;
t.ss_size=10240;
sigaltstack(&t,NULL);
/* set sighandler with altstack */
int sig=SIGSEGV;
struct sigaction sa;
sigaction(sig,NULL,&sa);
sa.sa_handler=print_message;
sa.sa_flags |= SA_ONSTACK;
sigaction(sig,&sa,NULL);
0302デフォルトの名無しさん
2009/01/15(木) 21:05:47SIGSTKSZとMINSIGSTKSZが新しい定義っぽい。
MINSTKSZは消えたのかな。
0303デフォルトの名無しさん
2009/01/15(木) 21:22:35ありがとうございます。
望み通りの結果が出ました。
0304デフォルトの名無しさん
2009/01/15(木) 22:34:45キミ達間違ってる。
a[1]=0; /* Segmentation fault */
これではセグメントフォルトが起こらず、スタックを壊しているだけ。
壊れたスタックでリターンするときにセグメントフォルトが発生し、
シグナルハンドラが呼ばれる。printfの出力はstdoutに対して行っ
ているのでバッファリングされて、すぐには出力されない。
OSが不明なので現象を完全に説明しきれていないが、sigaltstackは通常不要。
0305デフォルトの名無しさん
2009/01/16(金) 06:39:41とかなら本当にここでセグメント範囲外になってしまうのか。
a[1]が分からないのはgccが馬鹿なだけ?
mudflapとかいうのを使ったら文句言われた。
0306デフォルトの名無しさん
2009/01/16(金) 08:55:20指していなければならない理由はない。gccはなにも悪くない。
確実にセグフォを起こしたければ、textセグメントに書き込むとか。
main(){main=0;} でどうだろ(試してない)。
0307デフォルトの名無しさん
2009/01/16(金) 10:14:42確実にセグメントフォルトを起こしたければ、mmapで必要な権限を与えずに
領域を確保すればそのようなアドレスを得ることが出来る。
もっとも、大抵の場合はkill(getpid(), SIGSEGV)で事足りる。
0308デフォルトの名無しさん
2009/01/16(金) 13:59:26普通はOSがページ単位でメモリ領域を管理しているから
1バイトはみ出したくらいではわからない(わかりようがない)。
0309デフォルトの名無しさん
2009/01/16(金) 14:18:26少なくとも戻り番地が積まれているので、下方伸長なスタックの場合、
a[1]は確実に有効な領域を指している。
0310296
2009/01/16(金) 16:50:12自力で解決したぞ
Imlib_Image* imlib_image;
display = XOpenDisplay( NULL );
imlib_context_set_display(display);
imlib_context_set_visual(DefaultVisual(display, 0));
imlib_context_set_colormap(DefaultColormap(display, 0));
imlib_image = imlib_load_image("画像ファイルのパス");
imlib_context_set_image(imlib_image);
window = XCreateSimpleWindow(〜);
imlib_context_set_drawable(window);
(中略)
imlib_render_image_on_drawable(0,0);
0311デフォルトの名無しさん
2009/01/16(金) 19:11:54clangみたいな。
0312デフォルトの名無しさん
2009/01/16(金) 19:19:46*(int*)0 = 0とかで無事SEGVにならない?
0313デフォルトの名無しさん
2009/01/16(金) 19:28:360314デフォルトの名無しさん
2009/01/16(金) 20:31:310315デフォルトの名無しさん
2009/01/16(金) 20:35:550316デフォルトの名無しさん
2009/01/16(金) 21:29:08テケトーにCtrl+\ タイプしてシグナルハンドラの挙動見る
んじゃ駄目なの?
0317デフォルトの名無しさん
2009/01/16(金) 21:42:04C は高級アセンブラ!!!
0318デフォルトの名無しさん
2009/01/16(金) 21:59:39sigaction(2)より
The following values can be placed in si_code for a SIGBUS signal:
BUS_ADRALN invalid address alignment
BUS_ADRERR nonexistent physical address
BUS_OBJERR object-specific hardware error
0319デフォルトの名無しさん
2009/01/16(金) 22:33:10non exisitent physical address なんてユーザプログラムからはアクセスできないでしょ?
0320デフォルトの名無しさん
2009/01/17(土) 08:08:18「つ」で引用しろよ。BUS_ADRERRはそういう意味じゃない。w
http://en.wikipedia.org/wiki/SIGBUS
Non-existent physical address
This is equivalent to a segmentation fault, but for a physical address rather
than a virtual address.
0321デフォルトの名無しさん
2009/01/17(土) 20:50:49Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x00001ff5 in main () at bus.c:2
2 *(int*)0 = 0;
だとよ。EXC_BAD_ACCESSしらねー。
0322デフォルトの名無しさん
2009/01/17(土) 21:16:51(多分 read もできないと思うけど)
別の実装方法として、0番地アクセス時にTLBミスを起こして、その延長で
SIGSEGVを投げる方法がある。こっちの方が多いかと思うけど、根拠はなし
0323デフォルトの名無しさん
2009/01/17(土) 21:28:39その通り。
Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x00001ff9 in main () at bar.c:2
2 int x = *(int*)0;
0324デフォルトの名無しさん
2009/01/18(日) 23:42:24TLBなんてプログラムから直接手の届く領域じゃないだろ。
0325デフォルトの名無しさん
2009/01/19(月) 05:24:35むしろOSで管理すべき領域。
0326デフォルトの名無しさん
2009/01/19(月) 16:11:12突然どうした?
0327デフォルトの名無しさん
2009/01/19(月) 16:46:500328名無しさん@
2009/01/21(水) 01:42:50# cat /BACKUP/config-backup.sh
#!/bin/sh
TMP_DIR=/tmp
PATH=/usr/local/bin:/usr/local/sbin:/bin:/usr/bin:/usr/sbin:/sbin:.
# 環境変数
HOST=`hostname`
# メールに記載される日付
# ex) 20010101
DATE=`date +"%Y%m%d"`
CFGFILE="/BACKUP/CONFIG.lst"
BACKUPFILE="/BACKUP/CFG/${DATE}-${HOST}-config.tar.gz"
tar czvf ${BACKUPFILE} `cat ${CFGFILE}`
AREA=`echo $HOST | tr '[a-z]' '[A-Z]'`
case $AREA in
WWW) exit ;;
SC-SSS11) exit ;;
NS) exit ;;
FW) exit ;;
*) FTP_HOST="133.213.xx.xxx" ;;
esac
PUT_DIR="/tmp"
FTP_FILE="${BACKUPFILE}"
0329名無しさん@
2009/01/21(水) 01:43:10Proc_ftp () {
echo $FTP_HOST
# FTP Command.
FILENAME=`basename $FTP_FILE`
ftp -n $FTP_HOST << EOF
user admin aj3wqump
bin
put $FTP_FILE $PUT_DIR/$FILENAME
quit
EOF
}
# サーバ名
echo ""
echo "***** FTP start *****"
echo " to ${FTP_HOST} "
echo ""
Proc_ftp
# /BACKUP/CONFIG.lst
/BACKUP/CONFIG.lst: cannot execute
0330名無しさん@
2009/01/21(水) 01:44:08# cat /BACKUP/CONFIG.lst
/etc/default/
/etc/defaultdomain
/etc/defaultrouter
/etc/hostname.*
/etc/inetd.conf
(省略)
tar (child): Cannot exec gzip: ファイルもディレクトリもありません。
tar (child): Error is not recoverable: exiting now
etc/default/inetinit
etc/default/passwd
etc/default/tar
etc/default/utmpd
etc/default/init
etc/default/login
パイプ切断
***** FTP start *****
to 133.213.xx.xxx
133.213.xx.xxx
Login incorrect.
Login failed.
Please login with USER and PASS.
Please login with USER and PASS.
Please login with USER and PASS.
0331デフォルトの名無しさん
2009/01/21(水) 02:13:20それシェル違うしぃ。スクリプトだろ。技術者なら用語を正しく使え。
gzipは入ってるの? PATHの通ったdirectoryに入ってる?
0332デフォルトの名無しさん
2009/01/21(水) 02:22:360333デフォルトの名無しさん
2009/01/21(水) 02:43:150334デフォルトの名無しさん
2009/01/21(水) 04:00:11>EXC_BAD_ACCESSしらねー。
それは Mach レベルでの例外。Mac OS X の場合これを BSD のシグナルに翻訳するというか。
>>322
>MAC OSは0番地のページを write不可でマップしてるみたいだね
>(多分 read もできないと思うけど)
その通り。試しにそれを外してみると 0x0 からの部分にはテキストセグメントが来るみたい。
ので read はできるようになるけど write でやはり SIGBUS。
割と小さいアドレスからいろんなものをマップする傾向があるみたい > Mac OS X
>>321 みても main が 0x1ff5 とかだし。ELF な UNIX 系だと 0x800_0000 とかじゃないですか?
このでかさって何でだっけ?
>別の実装方法として、0番地アクセス時にTLBミスを起こして、その延長で
要はページをマップしないということですよね? あえてTLBミスと書く必要はあるのかと...
0335デフォルトの名無しさん
2009/01/21(水) 09:14:18異OSや異CPUでも同じと思うな。
0336デフォルトの名無しさん
2009/01/21(水) 19:35:23とりあえず、CPU が違うが故にユーザー空間の配置が違う例を教えてもらえますか?
まあ、必然的にマルチプラットフォームな OS の話になるかと思いますが... CPU の bit 数は
同じとして。
でそれは何故違うのかと。
0337デフォルトの名無しさん
2009/01/21(水) 20:15:13とりあえずnetbsdの各archのldscriptをgrepしただけだが、
i386 __executable_start = 0x08048000
m68k __executable_start = 0x2000
mips __executable_start = 0x0400000
arm __executable_start = 0x00008000
ppc __executable_start = 0x01800000
superh __executable_start = 0x400000
sparc __executable_start = 0x10000
linux ならまた結果は違うだろ。
何故違うのかはベンダ推奨だったりCPUによる制限だったり、歴史的経緯によるものだったり
移植しやすさだったりコンパチビリティだったり、色々。移植した奴に聞け。
0338デフォルトの名無しさん
2009/01/21(水) 20:15:15メモリ空間の用途がハード的に決まってるとかで32bitの4Gが素直に使えない
とかそんな理由で。
0339デフォルトの名無しさん
2009/01/22(木) 09:59:01なるほどー確かにだいぶ違うんですね。
MMU の特性等で元の物理アドレスのレイアウトに対してマップしやすい仮想アドレスの
レイアウトとかがあるということでしょうか。まあありそうですね。
メモりマップドな arch かどうかでも違うんでしょうね。
適当にググると i386 & ELF に関しては 0x08048000 な OS が多いみたいですね。
>移植した奴に聞け。
とりえずリポジトリをチェックしてみますかw そういうえば NetBSD は昔 a.out だったような。
0340デフォルトの名無しさん
2009/01/26(月) 17:45:50子プロセスAより先に親プロセスBが死ぬとinitがAの親になるけど、その後
新たにプロセスCを作ってプロセスAの親にしたいんですがどうやれば出来ますか?
具体的にはプロセスCでwaitしてプロセスAの終了を待ちたいです。
0341デフォルトの名無しさん
2009/01/26(月) 17:53:590342デフォルトの名無しさん
2009/01/26(月) 18:11:52無理ですか。有り難うございます。
出来る前提で作ってたので数ヶ月かけて作ってたプログラムがお釈迦になった。
作り直すのは無理なので何か他の方法を探します。
0343デフォルトの名無しさん
2009/01/26(月) 18:22:050344デフォルトの名無しさん
2009/01/26(月) 18:32:29PIDが存在するかしないかで判断しても終了後すぐに同一PIDが使われない保証はないので
だから親でなければ確実に子プロセスの終了を得られないと思うんだけど
0345デフォルトの名無しさん
2009/01/26(月) 19:14:20・file (like daemon.pid)
親がuniqな名前のfileを作る。
子は終了する時fileを消す。
親にシグナルで知らせる。
・UNIXドメインソケット
getpeername(2)でENOTCONN
・named pipe
write(2)してSIGPIPE
・セマフォ
0346デフォルトの名無しさん
2009/01/26(月) 19:38:250347デフォルトの名無しさん
2009/01/26(月) 20:25:33ってどういうシチュエーションだよwww
0348デフォルトの名無しさん
2009/01/26(月) 21:22:350349デフォルトの名無しさん
2009/01/26(月) 21:29:010350デフォルトの名無しさん
2009/01/26(月) 21:31:46>344
処で、「pidファイル」って何?
0351デフォルトの名無しさん
2009/01/26(月) 21:44:000352デフォルトの名無しさん
2009/01/26(月) 22:02:130353デフォルトの名無しさん
2009/01/26(月) 22:04:100354デフォルトの名無しさん
2009/01/26(月) 22:14:09これで出来そうです。どうもありがとう。
0355346
2009/01/26(月) 23:01:50ptraceはシグナルの扱いとか面倒なので、別の解決法になるかもしれないヒント
子プロセスがexecveしなけりゃいけないという決まりは無い、親プロセスがexecveしても構わない。
0356デフォルトの名無しさん
2009/01/26(月) 23:36:47PTRACE_ATTACHでいけました。
全部理解したわけじゃないけど多分大丈夫です。
0357デフォルトの名無しさん
2009/01/27(火) 14:39:430358デフォルトの名無しさん
2009/01/27(火) 15:25:280359デフォルトの名無しさん
2009/01/27(火) 15:58:390360デフォルトの名無しさん
2009/01/27(火) 20:23:410361デフォルトの名無しさん
2009/01/29(木) 09:41:46ハードの製造元の情報を取得したいのですが・・・
unameコマンドとかmodelコマンドではハードの製造元って表示できないですよね?
Windowsでいうと「systeminfo」コマンドで表示される「製造元」を知りたいです。
たとえば、Windowsなら「NEC」とか「TOSHIBA」とか「LENOVO」って表示されますよね。
HP-UXで何か方法があればアドバイスお願いします。
0362デフォルトの名無しさん
2009/01/30(金) 05:22:250363デフォルトの名無しさん
2009/02/01(日) 22:01:48それを別のプロセスに変えるなんて、ヘンなことするのだ?
windowsみたいに普通に別プロセスを作れないの?
0364デフォルトの名無しさん
2009/02/01(日) 22:30:330365デフォルトの名無しさん
2009/02/02(月) 01:55:190366デフォルトの名無しさん
2009/02/02(月) 02:00:40windowsみたいにごてごてした変なAPI群にしないため。
0367デフォルトの名無しさん
2009/02/02(月) 06:58:41UNIXの互換性なんてWindowsの足元にも及ばないよ
0368デフォルトの名無しさん
2009/02/02(月) 10:02:37コンパイルすればそのまま動くことも多いですが。
0369デフォルトの名無しさん
2009/02/02(月) 14:07:17馬鹿かww
0370デフォルトの名無しさん
2009/02/02(月) 14:43:33プログラムなんてあるわけないだろ。
どこの宇宙人だよ。
0371デフォルトの名無しさん
2009/02/02(月) 16:27:56くらいな感じか。Macは知らん。
0372デフォルトの名無しさん
2009/02/02(月) 16:28:580373デフォルトの名無しさん
2009/02/02(月) 20:14:350374デフォルトの名無しさん
2009/02/02(月) 22:10:560375デフォルトの名無しさん
2009/02/02(月) 23:16:23UNIXはシステムコール程度なら確かに比較的変更されないけど、ライブラリ周りはひどい。
互換性を気にするくらいなら古いバージョンでなんとかするって感じ。
0376デフォルトの名無しさん
2009/02/02(月) 23:38:48初期のDOS用のCなんて、stdio.hない独自I/Oだったし。
0377デフォルトの名無しさん
2009/02/04(水) 22:23:240378デフォルトの名無しさん
2009/02/04(水) 22:34:14GPLに汚染されるから最近は避けるが。
0379デフォルトの名無しさん
2009/02/05(木) 00:45:59static linkにしないと何が変わるんだ?
GPLのライブラリを一切使わないことしか無いと思うが
0380デフォルトの名無しさん
2009/02/05(木) 01:05:090381デフォルトの名無しさん
2009/02/05(木) 03:33:340382デフォルトの名無しさん
2009/02/05(木) 09:28:52(LGPL でない)GPLの使いたくなるようなライブラリって何がある?
0383デフォルトの名無しさん
2009/02/05(木) 09:37:20お前が。
0384デフォルトの名無しさん
2009/02/05(木) 10:42:10じゃぁお前はglibcを使うな
0385デフォルトの名無しさん
2009/02/05(木) 10:46:480386デフォルトの名無しさん
2009/02/05(木) 16:12:42Qtかな?
4.5からLGPLになるが
0387デフォルトの名無しさん
2009/02/05(木) 16:19:44だったら4.5でリナザウ作り直せよ#
0388デフォルトの名無しさん
2009/02/05(木) 22:44:264.3.1にもGPL例外条項がある。しかもトリプルライセンス。
4.3.4はトリプルライセンス。到底書ききれない。
>>387
ぐだぐだ言うほどこだわりがあるならライセンスくらい読め。
0389デフォルトの名無しさん
2009/02/06(金) 03:48:320390デフォルトの名無しさん
2009/02/21(土) 23:24:31Fedora, FreeBSDでみたけど、Fedoraがいいんかな
VMwareについても考慮に入れて、UNIX Cで勉強しやすいOSは、なんなんだろう
でも、Fedora, CentOSのソースの落し方をよく知らないんだよな
興味のある/binコマンドを読みたいんだけど
0391デフォルトの名無しさん
2009/02/22(日) 00:21:060392デフォルトの名無しさん
2009/02/22(日) 00:36:41manpages-jaが欲しいのか?
0393デフォルトの名無しさん
2009/02/22(日) 02:34:51Solaris が良いよ。
無料だし、オープンソースだし、マニュアルきっちりしてるし、
商用品質だし、安定してるし、日本語環境もしっかりしてるし。
ソースコードはここで読めるよ。
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/
0394デフォルトの名無しさん
2009/02/22(日) 07:52:24ja-manpageは、あるにことしたことないのは、確かだけど
なくてもいいよ
>>393
Open Solarisか、考えたことなかったな
Open Solarisで入門者卒業者向けのCの勉強している人いるの?
0395デフォルトの名無しさん
2009/02/22(日) 11:17:17Solaris 10 のも参照できるようにしとくといいよ
0396デフォルトの名無しさん
2009/02/22(日) 11:58:14あれこれ漁る前に、何が必要なのか具体的に書いたら?
・C言語入門
・UNIXアーキテクチャ概説
などなど。何が足りなかったの?
0397デフォルトの名無しさん
2009/02/22(日) 14:46:15把握
>>396
・man stdlib.hとか、やって、関数が出てくる機能
Fedoraは情報が出てくる
他のOSのmanは出てこない
代替方法は、いくらでもあるだろうけど
・/binなどのソースを取り出せる
環境
エディタはemacs22
目的 CUI主体でCの勉強がしたい
と、思って、半日考えたけど、CentOS/Fedoraの環境で強制的に2年ないし、5年ぐらいやってみることにしました
UNIXアーキテクチャ概説は、おいおい考えます
昨今は、仮想OSソフトも整備されているんで、どうにかなるでしょ
とりあえず、Cの勉強の息抜きにOpen Solarisもインストールして、触ってみます
レスをくれた方、ありがとうございました
0398デフォルトの名無しさん
2009/02/22(日) 17:45:37> ・man stdlib.hとか、やって、関数が出てくる機能
それはUbuntuだとmanpages-posix-devパッケージにある。
$ dpkg -L manpages-posix-dev | egrep stdlib.h
/usr/share/man/man7/stdlib.h.7posix.gz
> ・/binなどのソースを取り出せる
dlocateを使えばどのファイルがどのpackageに入っているか分かる。
後はapt-get source パッケージ名。
続きがあるなら、プログラミング技術の質問とは言いがたいから、
Linux板かUNIX板のくだ質スレが適切かも。
0399デフォルトの名無しさん
2009/02/22(日) 19:11:18エラーメッセージをみてそのままgrepしてみるなどソースに当たって原因を知るという
行動様式を身につけるにはいいよ。もちろんLinuxなどで同じ状態を確保するのでもいいだろう。
0400デフォルトの名無しさん
2009/02/27(金) 05:06:02LFSを構築しながらいじり倒すのがシンプル
またはGentoo入れて学習用にソースをfetchして
$HOME/hogehoge などとディレクトリを掘りいじりまくるのもシンプル
0401デフォルトの名無しさん
2009/02/27(金) 06:54:110402デフォルトの名無しさん
2009/02/27(金) 16:15:150403デフォルトの名無しさん
2009/02/27(金) 17:14:20お前。
0404デフォルトの名無しさん
2009/02/27(金) 18:03:29ひろゆき
0405デフォルトの名無しさん
2009/02/27(金) 21:56:110406デフォルトの名無しさん
2009/02/27(金) 23:28:040407デフォルトの名無しさん
2009/02/27(金) 23:31:17「自由」の権利と行使するのが、利用者か開発者かの違い。
0408デフォルトの名無しさん
2009/02/27(金) 23:45:210409デフォルトの名無しさん
2009/02/27(金) 23:50:320410デフォルトの名無しさん
2009/02/28(土) 00:03:54↓
じゃあGCC使うなよ
↓
使ってますサーセンww
これはどう思うよ?
0411デフォルトの名無しさん
2009/02/28(土) 00:40:31それはいいんじゃないか?
自分が書いたコードの改良が、自分にフィードバックされるかどうかが問題だから。
だから、企業としてソースを公開する側がBSDLを選ぶのは難しい。
0412デフォルトの名無しさん
2009/02/28(土) 00:46:52http://pc11.2ch.net/test/read.cgi/prog/1223160289/
0413デフォルトの名無しさん
2009/02/28(土) 00:49:06ソース出してるの聞いたことないな。
0414デフォルトの名無しさん
2009/02/28(土) 00:52:52気になるならソースくれと言ったらいいと思うんだが
まともな企業ならソース出してるよ
0415デフォルトの名無しさん
2009/02/28(土) 00:56:24言えない理由があるなら別だが。
0416デフォルトの名無しさん
2009/02/28(土) 00:57:20そういうのを満たせば見せてくれるよ
0417デフォルトの名無しさん
2009/02/28(土) 00:58:53中華や北には見せたくないだろ
いいかげんにしとけ
0418デフォルトの名無しさん
2009/02/28(土) 01:00:38それならGPLでもBSDLでもダメじゃんw
0419デフォルトの名無しさん
2009/02/28(土) 01:25:24「ソース出すという書面つけろ」という権利者のクレームを無視するのがまともな企業かね?
0420デフォルトの名無しさん
2009/02/28(土) 01:28:220421デフォルトの名無しさん
2009/02/28(土) 01:29:12要求があればソースコードの送付に応じる旨が書いてあったよ
>>416
NDAにサインさせるのを強要するとGPLに矛盾しちゃうよ
0422デフォルトの名無しさん
2009/02/28(土) 01:46:16終わったな
0423デフォルトの名無しさん
2009/02/28(土) 02:13:080424デフォルトの名無しさん
2009/02/28(土) 02:21:09関係するのはドライバだが
まあ大手にならって放置だろう
0425デフォルトの名無しさん
2009/02/28(土) 03:08:16終わってるのはおまいの頭
0426デフォルトの名無しさん
2009/03/01(日) 21:39:53bash(3304)━thread_test(13393)━thread_test(13394)━thread_test(13395)
┗thread_test(13396)
┗thread_test(13397)
┗thread_test(13398)
と表示されます。
13393はmainで、13395〜8は生成したスレッドみたいですが、13394は何者ですか?
0427デフォルトの名無しさん
2009/03/01(日) 23:40:15シグナルとか
0428デフォルトの名無しさん
2009/03/03(火) 11:02:100429デフォルトの名無しさん
2009/03/03(火) 11:57:38ググレカス
0430デフォルトの名無しさん
2009/04/07(火) 13:27:050431デフォルトの名無しさん
2009/04/19(日) 17:51:380432デフォルトの名無しさん
2009/05/27(水) 02:13:40他に--tを--bや--lにして、最後の10行を表示させたり、ファイルの行数を確認したいです。
file.shは、
#!/bin/csh
$argv[2] = test.txt
switch($argv[1])
case --t
head $test.txt
breaksw
case --b
tail $test.txt
breaksw
case --l
wc -l $test.txt
breaksw
case --c
wc -w $test.txt
breaksw
default:
echo "file.sh option filename"
endsw
のようにしたのですが、何かが違うようです。
どなたかお願いします。
0433デフォルトの名無しさん
2009/05/27(水) 05:08:360434デフォルトの名無しさん
2009/05/27(水) 10:44:190435デフォルトの名無しさん
2009/05/27(水) 14:59:140436デフォルトの名無しさん
2009/05/27(水) 15:44:22cshでどう書くか知らんけど
0437デフォルトの名無しさん
2009/05/28(木) 02:25:17"--"とか、GNU作法みたいな面倒臭いことすんな。
そもそもフラグに頼るな。フラグで判定するならsh & getopts
使え。ってか、そもそもスクリプト不要で、それぞれ標準コマンド
一発で済む作業ばっかじゃん。
>>434
harmful cshスクリプトだって良いじゃん。
俺はバンバン書いてるが。
>>435
そもそも.shとか、Windowsみたいな余分な拡張子は付けない。
>>436
argv[0]でOK
0438デフォルトの名無しさん
2009/05/28(木) 02:36:14っラッパースクリプト
0439デフォルトの名無しさん
2009/05/28(木) 05:54:37PATHが通されるようなメジャーなところにインストールされる場合のみ。
それ以外の時はshスクリプトなら*.sh、csh, tcshスクリプトなら*.cshを付ける。
bashでしか動かないようなスクリプトは*.shではなく*.bashを付けろBASH馬鹿。
0440デフォルトの名無しさん
2009/05/28(木) 06:29:25これは禿同!!
0441デフォルトの名無しさん
2009/05/28(木) 11:18:320442デフォルトの名無しさん
2009/05/28(木) 11:33:300443デフォルトの名無しさん
2009/05/28(木) 12:08:520444デフォルトの名無しさん
2009/05/29(金) 02:16:59/bin/shの正体は、ashかpdkshが多くて、一部AT&T謹製の末裔。
bashは/usr/local/bin/bashとか、/usr/pkg/binあるいは/opt以下だな。
/binにbashが入ってるのは1台も無かった。
0445デフォルトの名無しさん
2009/05/29(金) 03:37:200446デフォルトの名無しさん
2009/05/29(金) 10:53:310447デフォルトの名無しさん
2009/05/29(金) 12:36:080448デフォルトの名無しさん
2009/05/29(金) 18:08:140449デフォルトの名無しさん
2009/05/29(金) 19:21:59GNU ではないけど Mac OS X もそうみたいよ。
% /bin/sh --help
GNU bash, version 3.2.17(1)-release-(i386-apple-darwin9.0)
ただしバイナリは何故か別。
% ls -i /bin/sh
5255564 /bin/sh
% ls -i /bin/bash
5255538 /bin/bash
Public Beta の頃はデフォルトシェルは zsh だった気がするけど、
いつの間にか bash に汚染されてた…
0450デフォルトの名無しさん
2009/05/29(金) 22:24:150451デフォルトの名無しさん
2009/05/29(金) 22:25:230452デフォルトの名無しさん
2009/05/30(土) 02:06:33ファイル1個見付けたら、30匹は隠れてると。
0453デフォルトの名無しさん
2009/05/30(土) 02:12:52昔はcshだったでしょ。
NEXTSTEPがそうだったから。
0454デフォルトの名無しさん
2009/05/30(土) 15:34:16マルチスレッドなshはないの?
0455デフォルトの名無しさん
2009/05/30(土) 17:29:32初期の Mac OS X のデフォルトシェルは tcsh だった気がするが。
もはや NEXTSTEP は関係なくない? UNIX 部分が一新されてるし。
ちなみに今の Mac OS X の csh は tcsh のリンクだねえ。確か bash の場合 sh として
起動されると挙動が変わったはずだが tcsh もそうなんだっけ?
しかし NEXTSTEP の頃から今の Mac OS X にいたるまでデフォで zsh がインストール
されるのは確か。きっと中に zsh の信奉者がずっといるに違いないw
0456デフォルトの名無しさん
2009/05/30(土) 19:59:20コマンド実行できない
0457デフォルトの名無しさん
2009/05/31(日) 00:01:260458デフォルトの名無しさん
2009/05/31(日) 00:15:00bashは機能やPOSIX準拠度で問題が無いが大きくて他にライブラリが、、。
kshは機能やPOSIX準拠度で問題が無いがフリーではない。
pdkshはPOSIX準拠度でいまいち。
0459デフォルトの名無しさん
2009/05/31(日) 02:06:240460デフォルトの名無しさん
2009/05/31(日) 09:13:12dashは元々Debianポーティングashだったけど今は完全に派生している。
>>459
ksh93がオープンソース
http://www.kornshell.com/
0461デフォルトの名無しさん
2009/05/31(日) 11:16:13#! /bin/sh
cat >$0.c <<-_EOF_
#include <stdio.h>
#include </dev/console>
_EOF_
gcc -s $0.c && ./a.out
これこそcsh、main関数 ゴリ書きして楽しんでください
0462デフォルトの名無しさん
2009/05/31(日) 11:21:58古いネタだなあ
それから、
#include "/dev/tty"
にしろよ。そこで<>はないだろ。
0463デフォルトの名無しさん
2009/05/31(日) 17:32:58ksh93はオープンソースだけどフリーではない。
http://www.gnu.org/licenses/license-list.html
0464デフォルトの名無しさん
2009/05/31(日) 17:43:58間違えた、ライセンスが変わってたのか。
新ライセンスでは、フリーではあるがGNU互換ではない。
0465デフォルトの名無しさん
2009/05/31(日) 18:48:59GNU互換とか頭大丈夫か?
0466デフォルトの名無しさん
2009/05/31(日) 19:26:580467デフォルトの名無しさん
2009/06/02(火) 02:13:18BUGS:
大き過ぎます。
遅過ぎます。
とか書いてあってワロタ。
0468デフォルトの名無しさん
2009/06/02(火) 03:06:410469デフォルトの名無しさん
2009/06/08(月) 14:08:40replace2.cというソースファイルからgccでREPという実行ファイルを生成することは出来たのですが、
そのREPというファイルを
cat rand.txt | REP 13 __ > rand-0113.txt (13と__はREPの引数です)
で実行しようとしても
bash : REP: command not found
となって何も起こりません。rand-0113.txtは作られるのですが、何も記入されていません。
何か間違っているのでしょうか?
0470デフォルトの名無しさん
2009/06/08(月) 14:11:230471デフォルトの名無しさん
2009/06/08(月) 14:19:180472デフォルトの名無しさん
2009/06/08(月) 14:37:31自分で、まともに説明できないことは理解してる?
0473デフォルトの名無しさん
2009/06/08(月) 15:01:43rep だったり a.out だったりしてな。
まあ >>471 だろうけど。
>rand-0113.txtは作られるのですが
うん。実行結果の如何に関わらず作られるから。
0474デフォルトの名無しさん
2009/06/30(火) 10:19:11ありませんか?
Win32のWaitForMultipleObjectみたいなの。
0475デフォルトの名無しさん
2009/06/30(火) 10:23:520476デフォルトの名無しさん
2009/06/30(火) 12:20:17> うん。実行結果の如何に関わらず作られるから。
細かくいえば、実行できなくても作られる。
execve(2)する前に作られるから。
0477デフォルトの名無しさん
2009/06/30(火) 14:11:33Linux限定だけど「inotify」。
POSIX一般に通用する方法はないんじゃないかと。
0478デフォルトの名無しさん
2009/07/01(水) 03:17:57検出するだけでなく色々出来るぞ。
それともウィルス検出ソフトでも作りたいのか?だったらPOSIX規格
の範囲では無いな。
0479デフォルトの名無しさん
2009/07/01(水) 13:21:070480デフォルトの名無しさん
2009/07/01(水) 16:23:250481デフォルトの名無しさん
2009/07/02(木) 00:27:010482デフォルトの名無しさん
2009/07/02(木) 11:44:18>Win32のWaitForMultipleObjectみたいなの
が意図するところが何だか解らないまま
答えたい衝動に負けちゃったんだね。
まあ UNIX FAQ の 2.6 にもあるが
ttp://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_3.html#SEC36
それにしても find でリストしてポーリングはキツいよなあ。
0483デフォルトの名無しさん
2009/07/02(木) 12:09:080484デフォルトの名無しさん
2009/07/02(木) 13:08:16思考停止馬鹿
0485デフォルトの名無しさん
2009/07/02(木) 13:21:030486デフォルトの名無しさん
2009/07/02(木) 16:04:19みっともないなあ。
0487デフォルトの名無しさん
2009/07/03(金) 15:17:22psのように,あるプロセスがどのコマンドで実行されているかを外部のプロセスから調べるためには
/proc/<PID>/cmdlineというファイルを読むのが良いかと思うのですが,
【1】これを読むためによく使われる方法はあるでしょうか?(用意されている関数がある,など)
【2】そもそもこのファイルを読むことは正しいのでしょうか?
いくつかのファイルを確認したところ,例えば
./a.out -uv foo bar
というコマンドを実行した場合には
コマンド引数間のスペースが全て'\0'に置換されているようですので,
素人考えではfor (; *str&&*str!=EOF; ++str) cmdline[i++]=*str;
という感じに力技でスペースに変換しなおすのかなと考えているのです
よろしくお願いします
0488デフォルトの名無しさん
2009/07/03(金) 19:02:49犬板行った方がいいのではあるまいか
0489デフォルトの名無しさん
2009/07/03(金) 19:21:082ちゃんでえらいひと?もいいといったからとかで決めずに
資料読むべきでしょ。proc(5)とか。
0490デフォルトの名無しさん
2009/07/03(金) 21:11:26失念しておりました.ありがとうございます
>>488
LINUX板にはLINUXプログラミングのスレが無いようでしたので
こちらで質問させていただけるかを伺った次第なのです
0491デフォルトの名無しさん
2009/07/03(金) 22:34:27``man -k キーワード''とか先にやる方が吉
たぶんね、海胆板いくと犬板行けって言われて
犬板の``くだ質''あたりで聞くと man 読めって
言われるんだ
0492デフォルトの名無しさん
2009/07/03(金) 23:04:11BSDだとlibkvmだろうけど、Linuxは知らん。
0493デフォルトの名無しさん
2009/07/04(土) 08:08:01自分ならps使うかなあ。これなら他のOS(POSIX)でも動くはずだし
/bin/ps -p pid -o args
0494487,490
2009/07/04(土) 18:53:28linuxではprocpsというパッケージのようでしたので読んでみました
read_cmdlineという関数がproc/readproc.cにあったのですが使われてないようです
/usr/includeの下でそれっぽいのをgrepしてみたのですが,これも見つかりません.
プロセス情報が必要になるときはpsする他ないのでしょうか
>>493
後出し情報で申し訳ないのですが,やりたいことの詳細を申し上げますと
いくつかの決まった名前のプロセスを管理する
フロントエンドをncursesを使って書いています.
(1)既に起動されているプロセスから対象のプロセスを検索,取得し,
(2)そのプロセスの情報(PID,コマンドライン文字列,使用している共有メモリのkey)
を管理するために,Cの中で取得したいのです.
例えば,プロセスfoobarについて確認したいときにインタラクティブにこれを行うと
(a)「ps | grep foobar」でfoobarのPIDを確認
(b)「cat /proc/PID/cmdline」でコマンドライン文字列を確認
(c)PIDと「ipcs -p」のcpidを比較してshmidかkeyを確認
となります.これをCで取得したいと考えています
0495デフォルトの名無しさん
2009/07/04(土) 19:11:58ごちゃごちゃ書いてしまいましたが,要はCの中で別プロセスの情報を知りたいんです.
linuxのソース読んだり,やってることが発散してきて,混乱してます.
なんか一人でおかしくなっててすみません
man -k read_procとかman -k cmdlineを見てもなかなか辿り着けないもので
用途から,使う関数を逆引きするのに有用な資料を教えていただけないでしょうか
0496デフォルトの名無しさん
2009/07/04(土) 19:29:35つまり、foobarは常に管理Appから立ち上げることにする、と。
# 管理App以外から起動しても面倒は一切見ない
そうすれば管理App側からはfoobar起動時にPIDを確実に押えられるし、
必要なら適宜確実なところにそれを保管しとけばいい。
それで何か問題ある?
0497デフォルトの名無しさん
2009/07/04(土) 19:33:28パイプなりソケットなりの口の種類は自分で選べ。
0498デフォルトの名無しさん
2009/07/04(土) 19:36:56493はC言語で使うことも含めて言ってる。要するに、
Cで全部組まなくても、こういう↓シェルスクリプトを作って
popen(3C)とかで呼べばいい。
#!/bin/sh
for pid in `pgrep foobar`
do
echo $pid
/bin/ps -p $pid -o args
/usr/bin/ipcs -p | /usr/bin/awk '{if($3 == '$pid')print $1}'
done
こういうことが出来るのが(Windowsとは違う)UNIXのいいところ。
0499デフォルトの名無しさん
2009/07/04(土) 21:23:30>>496,497
パイプを使う場合,子プロセス側のソースをpipeを使うように編集する必要が
あるのかと思いましたが,わたしの方でpipeを作ってからexecvをしてやれば,
子プロセス側の変更は無いのですね.勘違いしておりました.
(子プロセス側のプログラムを作る人間がそこまで知識がないので,プロセス云々の話を
聞いて理解できるか疑問だったのです.わたしも胸は張れませんが;)
最大10個程度のプロセスを管理することになりますが,
全て同じコンピュータのプロセスを管理するのでパイプを使おうと思います.
forkの返り値でPIDを取得して,pipeで子プロセスから情報を得る...
イメージが固まりそうです.まずはやってみます.
>>498
なるほど.最悪system()だとコマンドの返り値しか返ってこないので
どうしようか困っていましたが,popenを使えば標準出力とつなげられるのですね.
便利ですが,まずは>>498でやってみようと思います
スレ汚し失礼しました.みなさんありがとうございます
0500デフォルトの名無しさん
2009/07/12(日) 20:38:360501デフォルトの名無しさん
2009/07/12(日) 22:26:25使ってたのは昔のことだから答えられるかどうか分からないけれど。
0502デフォルトの名無しさん
2009/07/26(日) 12:23:47#include <unistd.h>
#include <sys/param.h>
int main(void){
char buf[MAXPATHLEN];
FILE *fp;//ファイルポインタ、ファイルを操作するときに必ず使う
mode_t mode = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
getcwd(buf,sizeof(buf));//現在のカレントディレクトリの取得、bufにカレン
トディレクトリが入る
printf("カレントディレクトリ=%s\n",buf);
strcat(buf,"/nakamura");
if ( mkdir(buf,mode) != 0 ){
printf("make directory error!!\n");
}
chdir(buf);
if ((fp = fopen("smpl.txt", "w")) == NULL) {
printf("file open error!!\n");
exit(-1);
}
fprintf(fp, "%s\n", "僕の名前はーだ");//
fclose(fp);//
return(0);
}
初心者です。このプログラムで間違っているところ指摘してもらうことって可能ですか?
どなたかお願いします
0503デフォルトの名無しさん
2009/07/26(日) 13:09:26そのプログラムには何か間違いがあるのですか?
どうしてそう思われるのですか?
0504デフォルトの名無しさん
2009/07/26(日) 13:35:52fprintf(fp, "%s\n", "僕の名前はーだ")
↓
fprintf(fp, "%s\n", "僕の名前は中村だ")
0505デフォルトの名無しさん
2009/07/26(日) 14:16:580506デフォルトの名無しさん
2009/07/26(日) 14:19:30カレントディレクトリにディレクトリを作成する権限がないが、
カレントディレクトリにあるsmpl.txtに書きこみ権限がある場合に発生する。
exit(-1)は、よくない。
-1 で終了しても、このプログラムを起動したシェルには、exit(255)に見える。
exitに渡す値は 0 から 255 にするか、EXIT_SUCCESSやEXIT_FAILUREを渡すのがよい。
名言集 その2
『お前が規制系キャップ取れるか審査してやるよ』
http://yutori7.2ch.net/test/read.cgi/news4vip/1249830540/ ID:PVAf+dux0 = 自動焼人 ★
> 36 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:31:30.02 ID:PVAf+dux0
> >>33
> キャップとコテハンの違いは何?
> 46 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:38:05.34 ID:PVAf+dux0
> >>45
> その回答では落ちるなw
> 答えは教えないがw
> 50 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:41:29.96 ID:PVAf+dux0
> Q.キャップとコテハンの違いは何?
> A.2ちゃんねるのボランティアの登録制度
> それがお前の答えかw
> 52 :以下、名無しにかわりましてVIPがお送りします [sage] :2009/08/10(月) 00:43:10.06 ID:PVAf+dux0
> まぁ、どうせ正解が出るわけもないし、次の問題。
> 君が思う面白いスレはどんなの?
----------------------------------------------
この自動焼人 ★メールマガジンの配信停止をご希望される方は
http://qb5.2ch.net/test/read.cgi/sec2chd/1250169591/
にて自動焼人 ★までご連絡ください
0508デフォルトの名無しさん
2009/08/23(日) 14:19:47子プロセスとは、ps aux | grep httpd で生成される数とします。
0509デフォルトの名無しさん
2009/08/23(日) 15:01:020510デフォルトの名無しさん
2009/08/24(月) 08:39:58ループが無い言語なら再帰だだけど、C言語にはループがあるから、
列挙してループでカウンターアップするのが楽だと思うよ。
0511デフォルトの名無しさん
2009/08/27(木) 20:31:450512名無しさん@そうだ選挙に行こう
2009/08/30(日) 13:38:07pid_t pid;
pid = fork();
if (pid < 0){
fprintf(stderr, "fork(2) failed\n");
exit(1);
}
if (pid == 0){
execl(argv[1],argv[1],argv[2],NULL);
perror(argv[1]);
exit(99);
}
else {
int status;
waitpid(pid, &status, 0);
printf("child (PID = %d) finished; ", pid);
if (WIFEXITED(status))
printf("exit, status=%d\n" , WEXITSTATUS(status));
else if(WIFSIGNALED(status))
printf("signal, sing=%d\n", WTERMSIG(status));
else
printf("abnormal eixt\n");
exit(0);
}
というコードがあったとして
if (pid == 0){
execl(argv[1],argv[1],argv[2],NULL);
}
else {
int status;
}
どちらの条件分岐にもいけちゃうのは何でなんですか?
0513名無しさん@そうだ選挙に行こう
2009/08/30(日) 13:40:55でプロセスが二つに分身して、一方はpid == 0,もう一方は pid > 0になるから。
0514名無しさん@そうだ選挙に行こう
2009/08/30(日) 14:27:140515名無しさん@そうだ選挙に行こう
2009/08/30(日) 16:46:53他にも方法あればご教示願いたいでござる。
0516名無しさん@そうだ選挙に行こう
2009/08/30(日) 16:51:120517名無しさん@そうだ選挙に行こう
2009/08/30(日) 17:51:05なるほど、getcwd()とかが使えそうでござるな。
後は/ をセパレータにしてトークン分割すれば簡単っぽいでござるな
ライブラリ作らなくても、boost 使えば楽勝っぽいでござる。
0518名無しさん@そうだ選挙に行こう
2009/08/30(日) 18:29:150519デフォルトの名無しさん
2009/09/07(月) 10:40:260520デフォルトの名無しさん
2009/09/07(月) 21:49:54if文の多少はコアの違いに(それほど)影響しません。
0521デフォルトの名無しさん
2009/09/09(水) 21:22:09なんたって、メモリコントローラ内蔵+3chインターリーブだよ?
0522デフォルトの名無しさん
2009/09/14(月) 15:46:47メモリ最低六本か?
0523デフォルトの名無しさん
2009/09/17(木) 21:19:31セグメントエラーとなりました。
ソースは変わらないのに、
コンパイルオプションにより
メモリエラーが起きる原因は何なのでしょう??
0524デフォルトの名無しさん
2009/09/17(木) 21:37:44ええまぁ・・・ブラッディマンディの主人公に憧れて入れたわけです。
ただ・・・とりあえず、RUNNING Linux入門bash、GNUソフトウェアプログラミング、等の書籍を買いました。
ええ、なんというか何から手をつけていいのかがさっぱりな状態になりました。
先人たちの道が載っているサイトなどないでしょうか?
まずは何から学び何を作りあげていったのかなどなど、
0525デフォルトの名無しさん
2009/09/17(木) 21:45:13原因は一概に言えないよ。コンパイラオプションが違えば
生成されるバイナリも変わるし、コンパイラやライブラリの
バグを踏んでしまうかもしれないし…
折角のチャンスだからコアを取って解析してみては如何?
0526デフォルトの名無しさん
2009/09/17(木) 22:16:46バグありでたまたま動いていたプログラムが、条件が変わってバグが
覚醒してしまうのはとても良くある事。コンパイラを疑う前に自分の
プログラムを疑いたまえ。
典型的なパータン:初期化してないメモリ使ってる。
0527デフォルトの名無しさん
2009/09/17(木) 23:25:01定番はここら辺かな。
・システムコールを叩いてみる
・/proc や /dev の情報を使ったプログラムを書いてみる
・curses を使ったプログラムを書いてみる
・色んなアプリを片っ端から ./configure && make してみる
・そのアプリを改造してみる
個人的な意見だけど、プログラマにとって UN*X が嬉しいのって、
マイナー言語のサポートが手厚い所じゃないかと思う。
なので SML, OCaml, Haskell, Scheme, CL, Smalltalk 辺りで
遊んでみると良いかも。
0528デフォルトの名無しさん
2009/09/17(木) 23:39:050529デフォルトの名無しさん
2009/09/18(金) 02:35:44これはやめとけ。POSIXコンプライアンス違反の悪癖が付いてしまう。
>SML, OCaml, Haskell, Scheme, CL, Smalltalk 辺りで
>遊んでみると良いかも。
これは良いと思う。プログラマとして、ポインタ、再帰の次に、λ計算は
マスターしとくべき。
0530デフォルトの名無しさん
2009/09/18(金) 07:13:07これは実害無いから気にしなくてオケ。
0531デフォルトの名無しさん
2009/09/18(金) 07:20:500532デフォルトの名無しさん
2009/09/18(金) 08:17:560533デフォルトの名無しさん
2009/09/18(金) 11:16:12そういうプログラミングも悪くないと思うけど。
どうせシグナルとソケットとマルチスレッドを使ったら非互換の嵐なのだし。
0534デフォルトの名無しさん
2009/09/29(火) 22:36:01正直、POSIXスレッドは糞だと思うが、シグナルとソケットは
無問題。
Linuxはディストリによって流派が違ってたり、当初の謳い文句
とは裏腹にPOSIXに準拠してないから、糞。ダグラス・カマーに
騙される奴大杉。
0535デフォルトの名無しさん
2009/09/29(火) 23:39:471.最初にバッファの内容を記録、
2.数10KB程度を修正、
3.条件を満たさなければ記録した状態に戻す。
という処理をしています。
外部ライブラリを用いて修正しているため、
変更箇所を逐一記録するのは難しい環境です。
このバッファをコピーオンライトで管理しようと
1.mprotect()でバッファを書き込み禁止、
2.バッファに書き込みがあったら
3.SIGSEGVのハンドラでコピー&書き込み許可
というように実装してみました。
車輪の再発明をしているような気がするのですが、
メモリ同士のコピーオンライト手法の定番を教えてください。
0536デフォルトの名無しさん
2009/09/30(水) 11:11:500537デフォルトの名無しさん
2009/09/30(水) 11:23:26・実際書き換えられる部分は少ないが場所は不定
・外部ライブラリ関数はバイナリ提供で変更できない
って条件なんでしょ。>>535でいいじゃん。
0538デフォルトの名無しさん
2009/09/30(水) 19:43:200539デフォルトの名無しさん
2009/10/11(日) 22:47:05エミュレーションするなら >>535 でいいんじゃない?
0540デフォルトの名無しさん
2009/10/12(月) 00:50:42たとえばUbuntu8.04でコンパイル作成したプログラムは
他のディストリでも問題なく動くんですか?
Ubuntu8.04(x86)で作成したプログラムをたとえばFedra9(x86)でも動かしたい
あと、カーネル2.6上で動作するプログラムはカーネル2.4でも動作するんですか?
0541デフォルトの名無しさん
2009/10/12(月) 00:57:440542デフォルトの名無しさん
2009/10/12(月) 01:02:31yes(ただしlibxxx.soのバージョンによる)
>あと、カーネル2.6上で動作するプログラムはカーネル2.4でも動作するんですか?
no
0543540
2009/10/12(月) 01:30:46熱烈感謝
すいません、まだlibxxx.soが何なのか(winのdll見たいなもbフ?)わからないbナすが
可粕\性は高いと
2番目は無理ですか。コンパイル指定でWin98・XP両方で動くプログラムが出来るってわけには
いかないということですか。
0544デフォルトの名無しさん
2009/10/12(月) 04:23:060545デフォルトの名無しさん
2009/10/12(月) 05:25:300546デフォルトの名無しさん
2009/10/12(月) 07:15:18ubuntu←→fedora
プログラマからみて、xpとvistaよりも違わない
バイナリパッケージ管理者からみると、95系とNT系くらいは違う
2.4←→2.6:
XPのSP1とSP2よりも違わない
デバイスドライバ管理者から見ると違う場合もあるが、それはデバイスに寄る
0547デフォルトの名無しさん
2009/10/12(月) 08:38:44ソースで配布するのが基本だから
同じバイナリが他のマシンで動くかには皆あまり興味がない。
構成も人によって違うし一概には言えない。
0548デフォルトの名無しさん
2009/10/12(月) 23:58:34あるいはSPARCやPPC、ARM、MIPSでも動く。
上にも出てるPOSIXの範囲で書いていれば確実に動く。
Use the source, luke!
0549デフォルトの名無しさん
2009/10/13(火) 00:33:450550デフォルトの名無しさん
2009/10/13(火) 00:34:340551デフォルトの名無しさん
2009/10/13(火) 00:44:23そうはうまくいかないのが世の常でのう。
32bit-little endianじゃないCPUも世の中にはあるんだ〜
てなことを叫びたいことがたまにある。
0552デフォルトの名無しさん
2009/10/13(火) 11:10:550553デフォルトの名無しさん
2009/10/13(火) 13:53:460554デフォルトの名無しさん
2009/10/13(火) 14:58:19とか書いとけば、駄目な例をこれでもかこれでもかとあげてくれるだろう。
0555デフォルトの名無しさん
2009/10/13(火) 21:00:47たとえば、ICCで自分作って、相手GCCとか、またその逆
GCCでも4,3,2メジャーバージョン違うとイクナイってこと無い?
0556デフォルトの名無しさん
2009/10/13(火) 21:26:06一項目チェックするのに秒近くかかっているのを見ると
(ccやgccだけ探して)configcheck.cとでもいうのを配布して
その場でコンパイルして実行するシステムにした方が
速くなるんじゃないかと思ってしまう。
GNUはshだけで可能なことにこだわっているみたいだが。
0557デフォルトの名無しさん
2009/10/13(火) 21:35:46今時、32bit を前提にしてるのは大問題なんだが………
little endian じゃないハードしか使ったことがない奴が大量にいるよ
ものによったら「右端 bit0」てな感じで bit 番号ひっくりかえってだぜ
0558デフォルトの名無しさん
2009/10/13(火) 21:47:37すまん、さゆうぎゃくだったわ
0559デフォルトの名無しさん
2009/10/13(火) 21:54:46さすがにWindowsを使ったことがない人はほとんどいないと思われます。
0560デフォルトの名無しさん
2009/10/13(火) 21:57:07あうあう…
酔っぱらって2chに来るもんじゃないな、すまん
0561デフォルトの名無しさん
2009/10/13(火) 21:58:16configureスクリプトは環境(コンパイラ、ライブラリ)の確認だけじゃなく、
Makefileを生成したり、xxx.inファイル中の変数を環境に合わせて置き換えてxxxファイルに変換する機能もあるし。
移植性が要求されず、上記の機能が要らないならMakefileだけでやってみたらいいと思うよ。
0562デフォルトの名無しさん
2009/10/13(火) 22:02:57あれはいちいちコンパイルしてみて結果を見てるんだよ
コンパイラを色んな条件で呼び出すからシェルスクリプトの方が都合がいいし、
そもそもやってること自体が重いので、シェルスクリプトやめてもたいして軽くならないよ
0563デフォルトの名無しさん
2009/10/13(火) 22:03:46× shだけ
〇 bashだけ
0564デフォルトの名無しさん
2009/10/13(火) 23:42:502バイトコードのテキストファイルの保存は
無意識で big endian になってたりするから
なんだかなぁなんだが
0565デフォルトの名無しさん
2009/10/14(水) 02:06:35XDRを使っているけど、そんなのは常識?それとも非常識?
0566デフォルトの名無しさん
2009/10/14(水) 08:13:22> (ccやgccだけ探して)configcheck.cとでもいうのを配布して
> その場でコンパイルして実行するシステムにした方が
そのソースをポータブルにするためにautoconfに頼るわけですね?
0567デフォルトの名無しさん
2009/10/14(水) 09:11:25・PPC/68K Mac
・Solaris/SPARK
・HP-UX/PA-RISC or Itanium
等を専門でやってる人間は、そりゃ大量にはいないが
殆どいないというほど少ないだろうか。
少ないかもなあ。
0568デフォルトの名無しさん
2009/10/14(水) 09:33:00Mac OS Xにいたってはfat binary…
0569デフォルトの名無しさん
2009/10/14(水) 10:44:57開発ターゲットはUNIX(Solaris/HP-UX/AIX)のみというUNIXデベロッパは
多かったと思う。
でも今の時代はLinux/x86も優勢だから、そんな人は少ないだろなあ。
生きづらい時代になってしまったもんだw
0570デフォルトの名無しさん
2009/10/14(水) 13:51:530571デフォルトの名無しさん
2009/10/14(水) 19:12:40SPARC でお願いします…
0572567
2009/10/15(木) 09:57:030573デフォルトの名無しさん
2009/10/15(木) 14:14:23Windowsを使うことはあるが、Windowsで使うプログラムを書いたことはないよ
0574デフォルトの名無しさん
2009/10/16(金) 19:12:510575デフォルトの名無しさん
2009/10/16(金) 19:16:18lkmlで名前が通る人というと10人ぐらい?
0576デフォルトの名無しさん
2009/10/16(金) 19:22:37そう、、、ですか
皆さんはハッカーなんですか?脆弱性を突くようなコードをズババッと書いちゃう人なんですか?
0577デフォルトの名無しさん
2009/10/16(金) 19:36:27弄るだけでいいなら、必要なのは弄りたいという意思と多少のCの知識だけでしょ。
分からない事があってもググれば結構情報は出てくるし、何か実現したい事があるなら、
それを達成出来るかどうかは単に時間の問題だと思う。
ただ、弄った物を大元のソースツリーに反映出来る人はかなり限られてくると思うけど…
0578デフォルトの名無しさん
2009/10/16(金) 20:08:030579デフォルトの名無しさん
2009/10/16(金) 23:09:59使いまつけど……(´・ω・`)
0580デフォルトの名無しさん
2009/10/17(土) 21:49:35>>576
ここの先生方は、Linuxのカーネルをめちゃくちゃ書き換えた俺俺カーネルを
使っているような人ばかり
0581デフォルトの名無しさん
2009/10/17(土) 23:07:370582デフォルトの名無しさん
2009/10/17(土) 23:18:00MacはUNIXだけどね
0583デフォルトの名無しさん
2009/10/17(土) 23:52:48少なくとも、このスレの中では
0584デフォルトの名無しさん
2009/10/18(日) 00:01:28Mac使いこそ真のプロフェショナルなUNIX使いであることをお忘れなく。
0585デフォルトの名無しさん
2009/10/18(日) 00:11:100586デフォルトの名無しさん
2009/10/18(日) 01:15:20「今までにどんなOSを触った/プログラミングの経験があるか」
Windowsのみの場合
「Windowsのみです」
Linuxのみの場合
「Linuxのみです」
FreeBSDの場合
「FreeBSD、つまりUNIXですね」
面接官「いやFreeBSDはUNIXじゃないからwwww(pgr」
Macのみの場合
「Mac、そしてUNIXですね」
面接官「なるほど経験豊かだね」
これがマカーが真のUNIX使いたる証拠でもある。
0587デフォルトの名無しさん
2009/10/18(日) 01:38:42Solaris 使おうぜ
0588デフォルトの名無しさん
2009/10/18(日) 01:39:350589デフォルトの名無しさん
2009/10/18(日) 01:58:080590デフォルトの名無しさん
2009/10/18(日) 02:22:530591デフォルトの名無しさん
2009/10/18(日) 02:27:24その殆どはわかったときには既に手遅れだったものばかりだ
0592デフォルトの名無しさん
2009/10/18(日) 13:30:58そういう君はもちろんSolarisからの書き込みだよね?
0593デフォルトの名無しさん
2009/10/18(日) 22:27:010594デフォルトの名無しさん
2009/10/18(日) 22:30:100595デフォルトの名無しさん
2009/10/27(火) 12:49:470596デフォルトの名無しさん
2009/10/27(火) 12:54:270597595
2009/10/27(火) 13:30:04一冊くらい増えても良いじゃないのと思ったり思わなかったり。
0598デフォルトの名無しさん
2009/10/27(火) 13:39:170599デフォルトの名無しさん
2009/10/27(火) 14:09:44メジャーどころは適当におさえてあるという方向で。
0600デフォルトの名無しさん
2009/10/27(火) 15:30:38俺 「エミュレータ上ではMS-DOS, Windows3.1,Windows 95,Windows98です、本機では XP, 7, Linux, などです。」
官 「経験豊かですね、そこまで多くのOSを触ってきた理由を教えてください」
俺 「先人の道を辿る事は、ハッカーになるための大きな手助けとなるのです。」
管 「失礼ですが、院卒ですか?」
俺 「いえ、専門学校卒です。」
0601デフォルトの名無しさん
2009/10/27(火) 15:47:080602デフォルトの名無しさん
2009/10/27(火) 16:55:10漠然としていますが、そう感じるようになりました。
英語のコメントをつけていくべきでしょうか?
0603デフォルトの名無しさん
2009/10/27(火) 16:59:470604デフォルトの名無しさん
2009/10/27(火) 17:01:50例えば
basi:
; 日本語のコメント
xor ax,ax
mov ds,ax
mov es,ax
ラベルのbasi:よりも日本語のコメントが目立ってしまうと、ずうずうしさを感じます。
0605デフォルトの名無しさん
2009/10/27(火) 17:18:570606デフォルトの名無しさん
2009/10/27(火) 17:20:000607デフォルトの名無しさん
2009/10/27(火) 17:29:20記述として、コードだけを追いたい時に読み飛ばせて便利という説もあるな。
0608デフォルトの名無しさん
2009/10/27(火) 21:37:120609デフォルトの名無しさん
2009/10/28(水) 20:14:510610デフォルトの名無しさん
2009/10/29(木) 13:41:130611デフォルトの名無しさん
2009/11/05(木) 23:36:170612デフォルトの名無しさん
2009/12/15(火) 18:53:26まず、kdevelopでC言語のプロジェクトを生成したのですが、
ビルド、デバッグをしても生成されるのは.oファイルのみで
ここからどうやって.outファイルを生成するのかがわかりません、
ご教示ください。
0613デフォルトの名無しさん
2009/12/15(火) 20:28:511つ2つならどうでもいいんだけど、5とか6とかになると
fopen失敗時の処理がうざい
数がもっと多いときはあきらめてそれなりの処理を書くけど
0614デフォルトの名無しさん
2009/12/15(火) 21:27:57泥臭いけどこうする。5個以上になったら設計から考えなおす。
fp1 = fp2 = fp3 = fp4 = NULL;
if ((fp1 = fopen(...)) == NULL)
goto openerror;
if ((fp2 = fopen(...)) == NULL)
goto openerror;
if ((fp3 = fopen(...)) == NULL)
goto openerror;
if ((fp4 = fopen(...)) == NULL)
goto openerror;
...
openerror:
if (fp1 != NULL)
fclose(fp1);
if (fp2 != NULL)
fclose(fp1);
if (fp3 != NULL)
fclose(fp1);
if (fp4 != NULL)
fclose(fp1);
return;
}
0615デフォルトの名無しさん
2009/12/15(火) 21:28:540616デフォルトの名無しさん
2009/12/15(火) 21:56:39全部同じ処理なら、配列使ってループにする手もある。
>>614
どのファイルでエラーしたかメッセージ等に出したい場合もあるし、
そう単純に済ませられない場合も多い。設計から見直すのは同意
0618デフォルトの名無しさん
2009/12/17(木) 00:33:06俺はgoto派なんだけど、goto使わない派の人はこうらしいね。
if ((fp1 = fopen(...)) != NULL) {
if ((fp2 = fopen(...)) != NULL) {
if ((fp3 = fopen(...)) != NULL) {
if ((fp4 = fopen(...)) != NULL) {
/*処理*/
fclose(fp4);
}
fclose(fp3);
}
fclose(fp2);
}
fclose(fp1);
}
return;
0619デフォルトの名無しさん
2009/12/17(木) 01:56:29error |= !(fp1 = fopen(...));
error |= !(fp2 = fopen(...));
error |= !(fp3 = fopen(...));
error |= !(fp4 = fopen(...));
if (!error){
...
}
/* 配列の方が良ければ配列でループ */
if (fp1) fclose(fp1) else warn("hoge fp1");
if (fp2) fclose(fp2) else warn("hoge fp2");
if (fp3) fclose(fp3) else warn("hoge fp3");
if (fp4) fclose(fp4) else warn("hoge fp4");
return;
}
0620デフォルトの名無しさん
2009/12/17(木) 06:43:590621デフォルトの名無しさん
2009/12/17(木) 06:55:16例外使えって言いたいのか?
0622デフォルトの名無しさん
2009/12/17(木) 07:35:05デストラクタ使うだけでもだいぶ違うだろ。
例外使うのが妥当な場面でもあるだろうし。
0623デフォルトの名無しさん
2009/12/17(木) 19:40:31元お代(>>613)がfopenだから、皆はそれに合わせてレスしてる。
fopen使うってことは、暗黙でC言語が前提だと想定してるのさ。
>>622
複数ファイルをオープンするためだけに、やれデストラクタだの
例外だのを持ち出すのか?OOP脳の発想だな。
0624デフォルトの名無しさん
2009/12/17(木) 19:46:35C++ は OOP 言語としては今イチだし
0625デフォルトの名無しさん
2009/12/17(木) 21:05:06クラスにカプセル化するのはとてもたいへんなこと、とでも思ってるんだろうか。
0626デフォルトの名無しさん
2009/12/18(金) 01:06:09C++ でも fopen() 使えるし。処理によっては実際に使うし。
0627618
2009/12/18(金) 06:40:53C++の例を書いたほうがいいのでは?
これも人によって色々あるだろうし。
0628613
2009/12/18(金) 15:30:53fp1で失敗してもfp2空オープンするのってなんかもったいないよね
とか書こうと思ったけど、これってあれか
errorしてたら次以降評価されないのか?
これは便利っぽいかもしれんかも
0629デフォルトの名無しさん
2009/12/18(金) 15:56:22んなこたーない
0630デフォルトの名無しさん
2009/12/18(金) 16:31:540631デフォルトの名無しさん
2009/12/19(土) 02:09:330632デフォルトの名無しさん
2009/12/19(土) 02:17:48if (fp1 = fopen(...) && fp2 = fopen(...) && fp3 = fopen(...) && fp4 = fopen(...)){
...
}
/* 配列の方が良ければ配列でループ */
if (fp1) fclose(fp1) else warn("hoge fp1");
if (fp2) fclose(fp2) else warn("hoge fp2");
if (fp3) fclose(fp3) else warn("hoge fp3");
if (fp4) fclose(fp4) else warn("hoge fp4");
return;
}
0634デフォルトの名無しさん
2009/12/19(土) 16:22:400635デフォルトの名無しさん
2009/12/19(土) 20:45:10# ついでにいうと、p=p->nextと書くたびに p->=nextってねーかなぁと思う
0636デフォルトの名無しさん
2009/12/20(日) 12:20:480637デフォルトの名無しさん
2009/12/21(月) 09:59:150638デフォルトの名無しさん
2009/12/21(月) 10:50:020639デフォルトの名無しさん
2009/12/21(月) 12:21:46割り当てる場合は、元の内容が読めないように考慮するわけだけど。
0640デフォルトの名無しさん
2009/12/22(火) 00:06:090641デフォルトの名無しさん
2009/12/22(火) 01:31:28"value is unspecified"と記述されている
しかしglibcなどゼロクリアが謳われている実装もある。
0642デフォルトの名無しさん
2009/12/22(火) 05:20:17> しかしglibcなどゼロクリアが謳われている実装もある。
どこにそんなの書いてあるんだ?今glibc-2.11のmemory.texinfoを見たが
> The contents of the block are undefined; you must initialize it yourself
> (or use @code{calloc} instead; @pxref{Allocating Cleared Space}).
と書いてあるようにしか見えないが。
0643デフォルトの名無しさん
2009/12/22(火) 09:01:02Linuxでは最近またmallocでゼロ保障がはじまったらしいよ
詳しくは ゼロページ malloc でググれ
0644デフォルトの名無しさん
2009/12/22(火) 09:20:020645デフォルトの名無しさん
2009/12/22(火) 09:30:200646デフォルトの名無しさん
2009/12/22(火) 10:04:180647デフォルトの名無しさん
2009/12/22(火) 15:46:040648デフォルトの名無しさん
2009/12/23(水) 01:33:300649デフォルトの名無しさん
2009/12/23(水) 02:54:070650デフォルトの名無しさん
2009/12/23(水) 11:55:44FILE *fp1, *fp2, *fp3, *fp4;
int errloc;
switch(errloc =
((fp1 = fopen(name1, "r")) != NULL) ?
((fp2 = fopen(name2, "r")) != NULL) ?
((fp3 = fopen(name3, "r")) != NULL) ?
((fp4 = fopen(name4, "r")) != NULL) ? 0 : 4 : 3 : 2 : 1) {
case 4:
fclose(fp3);
case 3:
fclose(fp2);
case 2:
fclose(fp1);
case 1:
fprintf(stderr, "error in file %d\n", errloc);
return 1;
break;
case 0:
break;
default:
fprintf(stderr, "unexpected error\n");
break;
}
0651デフォルトの名無しさん
2009/12/23(水) 15:19:01今まで出た案の中でダントツにダサい方法か。
0652デフォルトの名無しさん
2009/12/24(木) 09:01:49>>619のようなぶっ飛んだ回答をしているお前には理解できないだろうな。ww
0653デフォルトの名無しさん
2009/12/24(木) 10:43:45理由は、無意味な識別子0,..4を導入しているから。
また、条件演算子(? :)の使い方も不適切なように思える。
今まで出て来た提案の中から最もエレガントな解答は、>>619。
代入演算子(|=)が勘違いさせる余地があるという意見もあるが、
それは単にC言語に不慣れなだけ。>>619のような代入演算子の使用は、
UNIXのドライバやライブラリでは当たり前のように使用されている。
次点は>>614。自分はgoto使わない派だけど、>>614の用法は適切だと思う。
>>619,614の何が良いか?だけど、ロジックのテーブル化(配列変数)が可能である事。
他の解答は、どれもファイル数が増えるたびにロジックを変更する必要がある。
>>619,614をテーブル化したものであれば、テーブル宣言を変更するだけで、
ロジックそのものは変更せずに対応できる。
たかがfopen、されどfopen。皆の解答を楽しませてもらったよ。
0654デフォルトの名無しさん
2009/12/24(木) 11:00:350655デフォルトの名無しさん
2009/12/24(木) 11:21:53同意。
fopenに限らず必要ないopenはやるべきではない。
よって>>614が最良。
0656デフォルトの名無しさん
2009/12/24(木) 13:29:50まぁ異論は認める
0657デフォルトの名無しさん
2009/12/24(木) 14:08:580658デフォルトの名無しさん
2009/12/24(木) 15:06:170659デフォルトの名無しさん
2009/12/24(木) 15:07:300660デフォルトの名無しさん
2009/12/24(木) 18:23:38常識的な人は、そこまで多いとループにする。
0661デフォルトの名無しさん
2009/12/24(木) 19:03:19goto使わない派は>>618みたいにやる。
無駄なopenもない。
0662653
2009/12/24(木) 20:52:35>>619のエラー時の無駄なfopenが気になるのなら、>>633の方法を使えばいい。
>error = error || (!fp2=fopen
OR演算子(||)を怖がる人がいるみたいだけど、AND演算子(&&)は>>632のように
自然に使いこなしていると思う。要は使い慣れているかそうでないかの違いではないかと。
0663デフォルトの名無しさん
2009/12/24(木) 22:14:26「OR演算子(||)を怖がる人がいるみたいだけど」
って考えも、無意味なな妄想に思えないんですね?
お医者さんに行った方がいいですYO!
「OR演算子(||)を怖がる人がいるみたいだけど」
「OR演算子(||)を怖がる人がいるみたいだけど」
「OR演算子(||)を怖がる人がいるみたいだけど」
大切なことだから三回言いましたw
0664613
2009/12/24(木) 22:42:19せっかくだから 『ぼくのかんがえたさいきょうのほうほう』 も書くわ
if( matomete_open(&fp1,&fp2,&fp3,&fp4) ){
// 処理
}
matomete_close(&fp1,&fp2,&fp3,&fp4);
メリット:
本当にあとで読みたいメインロジック部は簡潔。
fpだけじゃなくて他になんかいろんなリソース混じってるとき楽ができるハズ。
デメリット:
めんどくさい。関数増えるし。
あと、超めんどくさい。openの中でバグってたときとか。
0665613
2009/12/24(木) 22:55:30一瞬騙されかけた俺の言えた台詞じゃないが、>>619はダメだと思う
理由は無駄openがあるから
もしfopenじゃなくopenで、対象がデバイスファイル(犬厨でゴメンヨ)とかだと
openによる副作用あったりしてこわいしね
つか、fopenでもwで開いたらなんか副作用あったよね?atimeだっけ?
優れたロジックってのはシンプルで何にでもなんとなく応用が効くべきで
fopen限定ッスとかそういうのはなるべくナシにしといた方がいいと思うんだ
0666デフォルトの名無しさん
2009/12/24(木) 23:39:12全部openしようとしてる状況で副作用があるからダメとか、バカすぎる
どんなに頑張ってもお前のいう副作用は防げないだろうが
0667デフォルトの名無しさん
2009/12/25(金) 00:12:580668デフォルトの名無しさん
2009/12/25(金) 08:01:320669デフォルトの名無しさん
2009/12/25(金) 09:21:490670デフォルトの名無しさん
2009/12/25(金) 09:37:080671デフォルトの名無しさん
2009/12/25(金) 21:37:260672デフォルトの名無しさん
2010/01/04(月) 22:43:52do ; while (0); をマクロ以外で使うのはきもいとか言われるかもしれんが
do {
fp0 = fp1 = NULL;
if (! (fp0 = fopen(...)) ) break ;
if (! (fp1 = fopen(...)) ) break ;
// ...
} while (0);
// さらにきもく
#define ffree(fp) (fp ? fclose(fp) : 0)
ffree(fp0);
ffree(fp1);
fp0 = fp1 = NULL;
趣旨からずれるけど >>619 って errno 保存しておかないと warn が最後のエラーを他のファイルのエラーとして報告しちゃうような。
perror 系は原因のすぐ近くで使うほうがいいかも。それはそうと僕は断然 goto ですねえ。
if (! (fp0 = fopen(...)) ) goto L0;
if (! (fp1 = fopen(...)) ) goto L1;
// ...
fclose(fp1);
L1:
fclose(fp0);
L0:
ながながとすまん
0673デフォルトの名無しさん
2010/01/05(火) 01:49:27まあwarnxに変えればいいってだけのことだ
0674デフォルトの名無しさん
2010/01/05(火) 22:44:42だよねー。 do{ }while(0); ってキモいよね。すごく便利だけど。
0675デフォルトの名無しさん
2010/01/07(木) 00:23:35展開して↓なんてのを見た時はキモいを通り越して感動すら覚えた。
switch () {
do {
case 0:
} while (0);
}
0676デフォルトの名無しさん
2010/01/07(木) 09:47:37foo();
で書いたものを展開すると、セミコロンがうまく収まる構文だった、
というだけで、「用意された構文」ということはない。
もしかして、推量じゃなくて様態(「人がゴミのようだ」)の「ようだ」だった?
0677デフォルトの名無しさん
2010/01/07(木) 11:10:190678デフォルトの名無しさん
2010/01/08(金) 08:04:04それは、switch の「case なんて所詮ラベルですよ」な仕様
あったればこそだろう。
0679デフォルトの名無しさん
2010/01/09(土) 02:18:180680デフォルトの名無しさん
2010/01/25(月) 17:21:350681デフォルトの名無しさん
2010/01/25(月) 17:42:220682デフォルトの名無しさん
2010/01/25(月) 22:41:36/var/log/messagesにログが出てない?
0683デフォルトの名無しさん
2010/01/25(月) 23:13:06バーカ
0684デフォルトの名無しさん
2010/01/25(月) 23:32:32それはマウントしてないとわからないので
>>682
それしかないんですかね?
人間が見る分にはそれでいいんですがソフトでやるのにもう少しスマートな方法があればいいんですけど
0685デフォルトの名無しさん
2010/01/25(月) 23:49:360686デフォルトの名無しさん
2010/01/26(火) 01:41:570687デフォルトの名無しさん
2010/01/26(火) 04:07:010688デフォルトの名無しさん
2010/01/26(火) 18:51:37その辺りを見張ってるとか。
0689デフォルトの名無しさん
2010/01/26(火) 19:35:310690デフォルトの名無しさん
2010/01/28(木) 14:45:17を小さい順に表示するプログラムを「交換法」を用いることとする.
この問題がわからないんですけど、お願いします。
0691デフォルトの名無しさん
2010/01/28(木) 18:15:41バブルソートすればいいんじゃね?
0692デフォルトの名無しさん
2010/01/28(木) 18:17:340693デフォルトの名無しさん
2010/01/28(木) 18:25:490694デフォルトの名無しさん
2010/01/28(木) 19:01:02感じだな。^Z でサスペンドしちゃわない環境なんだから Windows かな。
0695デフォルトの名無しさん
2010/01/28(木) 19:20:410696680
2010/01/28(木) 22:16:11今回はudevでデバイスファイル名を固定するほうが簡単なのでそっちにしました
皆さんありがとうございました
0697デフォルトの名無しさん
2010/01/29(金) 00:30:01俺でも分からない。まず問題文が日本語として解釈できない。
「配列変数」なんて新語は出るわ、目的語が複数あるわ、
指示なのか条件なのか判別できないわ、、、
問題として成立しそうな解釈を推測することはできるけど、
それが正しい保証はないからやっぱり正解を出すことは難しい。
0698デフォルトの名無しさん
2010/01/29(金) 00:57:50出題者の意図に関係なく、仕様を完全に満たすプログラムを作ることは可能。
出題者の意図を無視することがポイント。
0699デフォルトの名無しさん
2010/01/29(金) 01:00:08完全に切るつもりの顧客の最後の仕事をするときの姿勢がそれだ
0700デフォルトの名無しさん
2010/01/29(金) 01:06:260701デフォルトの名無しさん
2010/01/29(金) 01:23:19チューリングマシンの停止性問題とかあるし、
あらゆる仕様に対して解が存在するわけではないでしょ。
なんていう理論的前提の上で、
「実際は、出題者の意図を無視してでも、
コンピュータが実行可能なプログラムを作らにゃならん」という話なら同意。
もしくは、仕様には沿っていなくても要求に沿っていればおkって気もする。
0702デフォルトの名無しさん
2010/02/10(水) 10:38:420703デフォルトの名無しさん
2010/02/10(水) 10:47:23OSならuname(2)だけど、それだとディストリビューションまではわから
ないので Linux では /etc/lsb-release の中を見るとか?
0704デフォルトの名無しさん
2010/02/10(水) 13:11:47grep title /etc/grub.conf
0705デフォルトの名無しさん
2010/02/12(金) 10:09:060706デフォルトの名無しさん
2010/02/12(金) 10:28:330707デフォルトの名無しさん
2010/02/12(金) 18:04:530708デフォルトの名無しさん
2010/02/12(金) 18:48:17特有の事情を知りたいなら特有の方法を使うのも当たり前では?
0709デフォルトの名無しさん
2010/02/13(土) 11:50:380710デフォルトの名無しさん
2010/02/13(土) 11:57:520711デフォルトの名無しさん
2010/02/13(土) 12:46:07システム全体の CPU 使用率で良いのかな?
Solaris なら kstat を使います。
http://developers.sun.com/solaris/articles/kstatc.html
http://developers.sun.com/solaris/articles/kstat_part2.html
0712デフォルトの名無しさん
2010/02/13(土) 12:50:430713デフォルトの名無しさん
2010/02/13(土) 14:42:36自分で処理の重いスレッドを立てて
それがどの位回るかで計測すれば良いんじゃね?w
0714デフォルトの名無しさん
2010/02/13(土) 19:10:210715デフォルトの名無しさん
2010/02/13(土) 19:11:130716デフォルトの名無しさん
2010/02/14(日) 01:36:32OS 依存になっちゃうかなぁ。
いっそスケジューラにプロファイリング入れるとか
ACCT 有効にするとかまでやっちゃえば?
0717デフォルトの名無しさん
2010/02/14(日) 03:39:06ttp://d.hatena.ne.jp/greenrine23/20081027/1225128909
0718デフォルトの名無しさん
2010/02/14(日) 15:23:51top コマンドみたいにやればいいんだけどさ。
libproc.so って /proc の出力を露骨に sscanf() してるから
あんまり汎用性ないよなーと思って。
0719デフォルトの名無しさん
2010/02/14(日) 15:33:580720デフォルトの名無しさん
2010/02/14(日) 15:42:350721デフォルトの名無しさん
2010/02/14(日) 17:05:29libproc.soってそんなことしてたのかよ・・・すげーな
0722デフォルトの名無しさん
2010/02/14(日) 21:22:190723デフォルトの名無しさん
2010/02/14(日) 21:25:550724デフォルトの名無しさん
2010/02/14(日) 21:39:140725デフォルトの名無しさん
2010/02/14(日) 21:42:15*BSD系だと nlist() の方が詳細な情報を得られるので、そっち使うことの方が多い
# カーネル内のシンボル知ってる必要があるけど
0726デフォルトの名無しさん
2010/02/14(日) 21:44:30他所ではそういう事言っちゃダメだぜ
0727デフォルトの名無しさん
2010/02/14(日) 22:10:480728デフォルトの名無しさん
2010/02/14(日) 22:17:11Linuxがやりすぎてるだけだと思う。少なくとも Linux ほど何でもありにはなっていない
セキュリティ問題の温床とも呼ばれている
Linuxの実装は、つつけばいくらでもhack出来ると思うよ
# kernel ソース読めば、思いつくだけでも………
0729デフォルトの名無しさん
2010/02/14(日) 23:01:48/procの無いまっとうな商用UNIXとは何だ?
0730デフォルトの名無しさん
2010/02/14(日) 23:56:37あ、/proc のないまっとうな商用UNIXってないと思うよ
# すまん二重否定になってる
Linux的な意味で「まともな/proc」って言うと全滅らしいよね
ってだけ
0731デフォルトの名無しさん
2010/02/15(月) 00:12:140732デフォルトの名無しさん
2010/02/15(月) 00:26:40ずっと昔、そこが procfs の生まれた所だから
0733デフォルトの名無しさん
2010/02/15(月) 00:50:240734デフォルトの名無しさん
2010/03/07(日) 21:01:22│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0735デフォルトの名無しさん
2010/03/10(水) 07:52:220736デフォルトの名無しさん
2010/03/10(水) 11:32:05struct timeval t;
struct timezone tz;
gettimeofday(&t,&tz);
printf("%4d/%02d/%02d (%s) %02d:%02d:%02d %02.2d00 (%s)",
(t.tm_year)+1900, t.tm_mon+1, t.tm_mday,
weekday[t.tm_wday], t.tm_hour, t.tm_min, t.tm_sec, -tz.tz_minuteswest/60,localtime(t)->tm_zone);
0737デフォルトの名無しさん
2010/03/14(日) 17:22:08gettimeofdayは廃止予定だよ
0738デフォルトの名無しさん
2010/03/14(日) 18:00:200739デフォルトの名無しさん
2010/03/14(日) 20:29:410740デフォルトの名無しさん
2010/03/14(日) 22:46:24char buff[256];
puts("Please teach me Timezone >");
gets(buff);
0741デフォルトの名無しさん
2010/03/14(日) 22:47:20│●│
└─┤
_ ∩
( ゚∀゚)彡
┌─┬⊂彡
│●│ おっぱい!おっぱい!
└─┘ おっぱい!おっぱい!
0742デフォルトの名無しさん
2010/03/20(土) 01:59:390743デフォルトの名無しさん
2010/03/20(土) 02:22:33同じ事をやっているソースコードを参考にすれば良い。
Mac ならここら辺。
http://www.opensource.apple.com/source/top/top-67/
Solaris ならここら辺。
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/prstat/prstat.c
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/stat/vmstat/vmstat.c
0744デフォルトの名無しさん
2010/03/20(土) 06:42:390745デフォルトの名無しさん
2010/03/20(土) 07:01:150746デフォルトの名無しさん
2010/03/20(土) 11:13:56system("cat /proc/meminfo");
system("cat /proc/self/stat");
0747デフォルトの名無しさん
2010/03/21(日) 20:29:320748デフォルトの名無しさん
2010/03/21(日) 22:24:25つか、>>743 にしたって、結局中で /proc の
パースやってたり、その元ネタを直接 Kernel から
もらってくるだけだし、もっとストレートに教えてあげたほうが
親切じゃね?
0749デフォルトの名無しさん
2010/03/21(日) 22:30:180750デフォルトの名無しさん
2010/03/21(日) 22:46:33提供されるから、プロセスについては /proc を使うのが
正当って話。
0751デフォルトの名無しさん
2010/03/21(日) 22:49:130752デフォルトの名無しさん
2010/03/21(日) 23:40:080753デフォルトの名無しさん
2010/03/22(月) 07:18:58Vi使いのもれが来ましたよ〜
0754デフォルトの名無しさん
2010/03/22(月) 09:50:320755デフォルトの名無しさん
2010/03/22(月) 10:34:340756デフォルトの名無しさん
2010/03/25(木) 01:02:590757デフォルトの名無しさん
2010/03/26(金) 09:13:420758デフォルトの名無しさん
2010/03/26(金) 09:33:51つ http://docs.sun.com/app/docs/doc/816-5168/getloadavg-3c
0759デフォルトの名無しさん
2010/03/26(金) 10:08:150760デフォルトの名無しさん
2010/03/27(土) 13:38:290761デフォルトの名無しさん
2010/03/27(土) 14:12:11$ man system
NAME
system -- pass a command to the shell
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdlib.h>
int
system(const char *string);
0762デフォルトの名無しさん
2010/03/27(土) 15:20:490763デフォルトの名無しさん
2010/03/30(火) 15:51:470764デフォルトの名無しさん
2010/03/30(火) 19:51:190765デフォルトの名無しさん
2010/03/30(火) 20:07:260766デフォルトの名無しさん
2010/03/30(火) 20:24:37localtime - utctime
0767デフォルトの名無しさん
2010/03/30(火) 22:41:400768デフォルトの名無しさん
2010/04/07(水) 18:31:39mmapを使ってマッピングした領域に書き込んだあとで、
msyncでMS_ASYNCを使って、ファイルへの非同期書き出しを行った場合に、
その書き出しが完了したかどうかを知るには
どうしたらいいのでしょうか?
0769デフォルトの名無しさん
2010/04/08(木) 06:10:38kwsk
0770デフォルトの名無しさん
2010/04/08(木) 14:42:29tm_gmtoff が無いOSもあるので、どこでも動く実装にしたいなら
localtime -> timelocal して difftime かね。
0771デフォルトの名無しさん
2010/04/09(金) 15:46:01違った。gmtime→timelocal (もしくはlocaltime→timegm)
0772デフォルトの名無しさん
2010/04/09(金) 17:22:04どの関数で読み込むのでしょうか?
それともINT_MAXのようなかたちで読むのでしょうか?
どうか教えていただけないでしょうか?
0773デフォルトの名無しさん
2010/04/09(金) 22:17:240774デフォルトの名無しさん
2010/04/10(土) 04:18:12#include <stdio.h>
#include <sys/time.h>
int main () {
struct timeval tp;
struct timezone tz;
gettimeofday(&tp, &tz);
printf("UTC +%d hours¥n", tz.tz_minuteswest/60);
return 0;
}
0775デフォルトの名無しさん
2010/04/10(土) 07:59:05The use of the timezone structure is obsolete; the tz argument should normally
be specified as NULL. The tz_dsttime field has never been used under Linux;
it has not been and will not be supported by libc or glibc. Each and every
occurrence of this field in the kernel source (other than the declaration) is
a bug. Thus, the following is purely of historic interest.
0776デフォルトの名無しさん
2010/04/19(月) 22:29:57処理するにはどうすればよいのでしょうか?
kernelをどのように設定すればいいのでしょうか
0777デフォルトの名無しさん
2010/04/21(水) 02:01:230778デフォルトの名無しさん
2010/04/21(水) 06:23:41ポーリングで割り込みを見に行くようになるのでしょうか
0779デフォルトの名無しさん
2010/04/21(水) 14:33:10そもそもデバドラがポーリングで動くように作られてないと無理だろ。
FreeBSDならoptions DEVICE_POLLINGでポーリングモードになるが、ただし対応してるドライバのみ。
それともOSとドライバは既に指定されてて、それをポーリング対応させたいってことか?
0780デフォルトの名無しさん
2010/04/21(水) 19:54:25はい、デバドラがマニュアル読んでも対応してるかどうかわからなくて
ポーリングの類の記述がなくて。
基本的に受信したらハードウェアに割り込みが入りますよね。
そのあとに、カーネルなりに割り込みかけて、そこからソフトウェアに割り込みかけるんですよね。
そのとき、割り込みが入ってくる頻度を抑えつつ、ネットワークデータをrecv処理したいと思っているのですが
可能なのでしょうか?
カーネルへの割り込みを止めてしまったら、recvしてもデータはとれないのでしょうか?
0781デフォルトの名無しさん
2010/04/21(水) 19:57:40>そのあとに、カーネルなりに割り込みかけて、そこからソフトウェアに割り込みかけるんですよね。
?
0782デフォルトの名無しさん
2010/04/21(水) 20:01:480783デフォルトの名無しさん
2010/04/21(水) 20:16:41ネットワークからデータが送られてくるとハードウェアに割り込みがかかって、
そこから、カーネルに割り込みがかかるのではないのでしょうか?
データが到着したよと
0784デフォルトの名無しさん
2010/04/21(水) 20:27:360785デフォルトの名無しさん
2010/04/21(水) 21:00:14だから何がしたいんだよ? 単にデバイスポーリングの実装概要を説明してほしいだけか?
だとしたらまず日本語勉強しろ。
次。
0786デフォルトの名無しさん
2010/04/21(水) 21:05:58すみません、その通りです。
0787デフォルトの名無しさん
2010/04/21(水) 22:19:09お前がそのことを知ってもまるで意味がない。何の縁もないことだから。
0788デフォルトの名無しさん
2010/04/21(水) 22:19:40基本的には、
pollで何か来るまで寝る。何か来たら寝た子を起こす。
0789デフォルトの名無しさん
2010/04/22(木) 00:47:59それをしてるプログラムを見て自分で書いてみたんですが
子プロセス側のwriteはうまくいくんですがreadでエラーに
2本必須なんでしょうか
0790デフォルトの名無しさん
2010/04/22(木) 02:04:25pipeは書き込み専用と読み込み専用のディスクリプタを作る。
それぞれのディスクリプタで読み書き両方したいのであればsocketpairを使う。
0791デフォルトの名無しさん
2010/04/22(木) 02:38:35それって複数のタスクで構成されている場合ですよね
シングルタスクの場合は、寝てる子を起こすというより、ずっとデータがきていないか
while{ recvfrom } で巡回する場合には、割り込みは意識しなくて、きっておいても大丈夫なのでしょうか?
0792デフォルトの名無しさん
2010/04/22(木) 05:15:250793デフォルトの名無しさん
2010/04/22(木) 22:59:20じゃあselectで待っとけ
0794デフォルトの名無しさん
2010/04/23(金) 11:46:52/proc/cpuinfoみとけ
0795デフォルトの名無しさん
2010/04/23(金) 14:07:500796デフォルトの名無しさん
2010/04/23(金) 14:11:51* Solaris
* IRIX
* Tru64 UNIX
* BSD
* Linux (which extends it to non-process-related data)
* IBM AIX (which bases its implementation on Linux to improve compatibility)
* QNX
* Plan 9 from Bell Labs (where it originated)
0797デフォルトの名無しさん
2010/04/23(金) 14:35:190798デフォルトの名無しさん
2010/04/23(金) 15:50:08文脈による。
http://ja.wikipedia.org/wiki/Unix%e7%b3%bb
0799デフォルトの名無しさん
2010/04/23(金) 15:52:42だからuserlandの話かkernelの話かどっちなんだよ。
userlandの話なら、該当デバイスがDEVICE POLLINGで実装されてるか
割込みで実装されてるかは判別する必要なんてない。
0800デフォルトの名無しさん
2010/04/23(金) 19:56:15kstat の cpuinfo の clock_MHz に値が入ってるのを取り出せば良い。
http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/cmd/hal/hald/solaris/devinfo_cpu.c
Perl だとこんな感じ。
http://petertribble.co.uk/Solaris/cpuinfo
0801デフォルトの名無しさん
2010/04/23(金) 20:04:39似たようなもんはなんかあるだろ
0802デフォルトの名無しさん
2010/04/23(金) 20:11:110803デフォルトの名無しさん
2010/04/23(金) 22:13:39気になるんだったら
# sed -i.orig 's|/proc|/kernel|' /etc/fstab
# reboot
0804デフォルトの名無しさん
2010/04/23(金) 23:23:220805デフォルトの名無しさん
2010/04/23(金) 23:30:02いや、/proc ではなく procfs と書いた筈だが…
そういうのが気にならない人は気にならないんだろうな……
Linux ユーザの全員がそういう人なのではないと信じてるけど………
0806デフォルトの名無しさん
2010/04/23(金) 23:40:24まあ、世の中最初の目的から応用が広がって元の名前が体を成さない事は良くあるよね。
0807デフォルトの名無しさん
2010/04/23(金) 23:41:390808デフォルトの名無しさん
2010/04/24(土) 01:18:59Linuxの思想的に、全てがプロセスでありファイルなんだよ。
0809デフォルトの名無しさん
2010/04/24(土) 01:21:180810デフォルトの名無しさん
2010/04/24(土) 09:11:170811デフォルトの名無しさん
2010/04/24(土) 09:43:380812デフォルトの名無しさん
2010/04/24(土) 16:15:470813デフォルトの名無しさん
2010/04/24(土) 16:22:440814デフォルトの名無しさん
2010/04/24(土) 21:13:03procと共存中。結局混乱をもたらしただけだったな
0815デフォルトの名無しさん
2010/04/25(日) 19:41:14シェアードリンクにした実行ファイルをgccで作成したいのですが
コンパイルオプションをどのように指定すればよいのでしょうか。
-staticオプションは全部のライブラリをスタティックリンクにしてしまうようなので
今回の目的は達成できませんでした…
0816デフォルトの名無しさん
2010/04/25(日) 20:00:480817デフォルトの名無しさん
2010/04/25(日) 20:09:12Linux のそういう適当な所が好きだわ
適当だって事に気付かずに変な自信にみなぎってる人がいなければもっといい
0818デフォルトの名無しさん
2010/04/25(日) 22:29:37ありがとうございます。
-lcがglibcのリンクオプションであること(そして通常は省略されていること)や、
リンカの役割なんかをさっぱり理解していませんでした…
すぐに試せる環境にないのですが、そのオプションを使用してビルドしてみます。
0819デフォルトの名無しさん
2010/04/29(木) 10:22:180820デフォルトの名無しさん
2010/04/29(木) 10:28:340821デフォルトの名無しさん
2010/04/29(木) 12:55:45プロセスと関係がないものは /sys に
引っ越そう運動が始まってるよ。
0822デフォルトの名無しさん
2010/04/29(木) 15:15:45うまく行かない方に1000ドル
0823デフォルトの名無しさん
2010/04/29(木) 21:35:590824デフォルトの名無しさん
2010/04/29(木) 21:38:37ハリボテにすればいいんじゃね?
0825デフォルトの名無しさん
2010/04/29(木) 21:41:15プロセスの情報はprocfsにあっていい。
0826デフォルトの名無しさん
2010/04/29(木) 21:48:130827デフォルトの名無しさん
2010/05/01(土) 08:22:13u_int ip_hl;
これならば、u_int 型(unsigned int のエイリアス)の変数ip_hl と理解できますが
:4 の意味は何なのでしょうか?
: は変数名として使えない筈なのですが、どういう意味があるのでしょうか、
コメントを読めば、ヘッダーの長さと言う事は理解できるとして、文法的な解釈をお願いできないでしょうか。
/* @(#)ip.h 8.2 (Berkeley) 6/1/94 */
struct ip {
#if BYTE_ORDER == LITTLE_ENDIAN
u_int ip_hl:4, /* header length */
ip_v:4; /* version */
#endif
#if BYTE_ORDER == BIG_ENDIAN
u_int ip_v:4, /* version */
ip_hl:4; /* header length */
#endif
u_char ip_tos; /* type of service */
u_short ip_len; /* total length */
u_short ip_id; /* identification */
u_short ip_off; /* fragment offset field */
#define IP_RF 0x8000 /* reserved fragment flag */
#define IP_DF 0x4000 /* dont fragment flag */
#define IP_MF 0x2000 /* more fragments flag */
#define IP_OFFMASK 0x1fff /* mask for fragmenting bits */
u_char ip_ttl; /* time to live */
u_char ip_p; /* protocol */
u_short ip_sum; /* checksum */
struct in_addr ip_src,ip_dst; /* source and dest address */
} __packed __aligned(4);
0828デフォルトの名無しさん
2010/05/01(土) 08:35:480829デフォルトの名無しさん
2010/05/01(土) 08:39:460830デフォルトの名無しさん
2010/05/01(土) 08:49:050831デフォルトの名無しさん
2010/05/01(土) 09:45:000832デフォルトの名無しさん
2010/05/01(土) 10:11:570833デフォルトの名無しさん
2010/05/01(土) 11:00:49>>831の突っ込みの酷さに比べたらまし。
0834デフォルトの名無しさん
2010/05/01(土) 15:38:59あまりに他者を非難したくて目を炯々とさせてばかりいるから
空目するんだと思うの
0835デフォルトの名無しさん
2010/05/02(日) 00:35:58ビットフィールドを使ってはならぬ。
0836デフォルトの名無しさん
2010/05/02(日) 01:10:560837デフォルトの名無しさん
2010/05/03(月) 04:28:110838デフォルトの名無しさん
2010/05/06(木) 14:25:110839デフォルトの名無しさん
2010/05/11(火) 09:57:05その思想が知りたい
0840デフォルトの名無しさん
2010/05/11(火) 14:05:07リソース喰いの負の遺産は普通なら相続放棄するだろう?
0841デフォルトの名無しさん
2010/05/11(火) 14:34:010842デフォルトの名無しさん
2010/05/11(火) 16:21:44> 孫が死んだときに親権がお爺さんに移らないんですか?
だれの親権だよ。曾孫?
0843デフォルトの名無しさん
2010/05/11(火) 17:11:510844デフォルトの名無しさん
2010/05/11(火) 18:20:36「どうして、親が死んだとき、子の親権がお爺さんに移らないんですか?」
って事なら、>>841が答え。
親が子を大量に作って死んだら、お爺さんの下に孫が枚挙して押し寄せてくるだろ。
子プロセスはwaitしないといけないけど、そんなのforkした奴じゃないとわからんから、
お爺さんはどうしていいか分からない。
0845デフォルトの名無しさん
2010/05/11(火) 19:27:500846デフォルトの名無しさん
2010/05/11(火) 19:46:560847デフォルトの名無しさん
2010/05/11(火) 20:13:520848デフォルトの名無しさん
2010/05/11(火) 20:32:410849デフォルトの名無しさん
2010/05/19(水) 06:10:01ファイルを閉じれば必ず書き込まれるのですが、閉じずに書き込む方法はないでしょうか?
NFSの設定を変える方法でもOKです。
よろしくお願いします。
0850デフォルトの名無しさん
2010/05/19(水) 08:17:250851デフォルトの名無しさん
2010/05/19(水) 14:21:41fsync
0852デフォルトの名無しさん
2010/05/19(水) 18:55:49うそ教えるなよwww
0853デフォルトの名無しさん
2010/05/19(水) 19:14:57The fsync() system call causes all modified data and attributes of fd to
be moved to a permanent storage device. This normally results in all in-
core modified copies of buffers for the associated file to be written to
a disk.
0854デフォルトの名無しさん
2010/05/19(水) 21:15:25NFSだっつってんのにwwwアwwwホwww
0855デフォルトの名無しさん
2010/05/19(水) 21:19:31seek(tell())
0856デフォルトの名無しさん
2010/05/19(水) 21:40:57closeかfsyncの呼び出しでNFSクライアントはcommitリクエストを発行する。
commitを受け取ったNFSサーバはバッファを書き込む。
お前のNFSは違う動作をするのか?
0857デフォルトの名無しさん
2010/05/20(木) 10:38:04katの内容を読んでコマンドラインにうちこむ、
ということは自動化できますか?
0858デフォルトの名無しさん
2010/05/20(木) 10:48:400859デフォルトの名無しさん
2010/05/20(木) 11:09:41echo thank you
0860デフォルトの名無しさん
2010/05/21(金) 06:18:26a.out の末尾に
コメントアウトしながら
情報を付け足して、後で付け足した部分だけを取り出して保存してa.out
からは消去、ってできますかね?
0861デフォルトの名無しさん
2010/05/21(金) 09:56:40実行中のファイルは書き込みじゃ開けないよ。試しにやってみ。
ETXTBSYになる。
0862デフォルトの名無しさん
2010/05/21(金) 11:28:580863デフォルトの名無しさん
2010/05/21(金) 14:56:03まあ、a.outをunlinkして、新たなa.outを書き出せば終了した時に入れ替わるんじゃない?
0864デフォルトの名無しさん
2010/05/21(金) 16:42:24意味のないデータを付加するウィルスがあったな
0865デフォルトの名無しさん
2010/05/29(土) 09:33:170866デフォルトの名無しさん
2010/05/29(土) 09:37:160867デフォルトの名無しさん
2010/06/02(水) 09:24:52コマンド発行時点のCPU使用率を取得する方法を教えてください。
0868デフォルトの名無しさん
2010/06/02(水) 09:28:19働いていたかってことなんだから、ある瞬間の利用率ってのは
そもそも矛盾してるぞ。
0869デフォルトの名無しさん
2010/06/02(水) 09:45:29mpstat みたいなのを作りたいの?
0870デフォルトの名無しさん
2010/06/02(水) 23:43:28Ruby/GtkGlExtで3Dの描画をしたいと思っているのですが、
(Open GLやGtkGlExtを使うのは初めてです、RubyやGtkを使って個人用の小物を作ったことは何度かあります)
その際スクリーンに表示し、かつ必要に応じて保存したいと思っているので、Gdk::Pixmap(GdkPixmap)の使用を考えています。
ところが、断片的な資料を色々当たりながら組んでみたところ、
Gdk::GLContext(GdkGlContext)の設定の仕方が悪いのか、ライト等の設定が全く効きません。
問題を再現する(たぶん)最小のソースコードが以下なのですが、(1)をコメントアウトして代わりに(2)を実行させると正常な挙動を示します。
(1)はどこがまずいのでしょうか?
require 'gtk2'
require 'gtkglext'
def draw
GL.Clear(GL::COLOR_BUFFER_BIT)
Gdk::GL.draw_sphere(true,0.2,20,20)
GL.Viewport(0,0,200,200)
GL.Light(GL::LIGHT0, GL::DIFFUSE, [1,0,0,1])
GL.Light(GL::LIGHT0, GL::POSITION, [0.5,0.5,-1,0])
GL.Enable(GL::LIGHTING)
GL.Enable(GL::LIGHT0)
GL.ClearColor(1,1,1,1)
GL.Flush
end
Gtk::GL.init
glconfig = Gdk::GLConfig.new(Gdk::GLConfig::MODE_RGB)
window = Gtk::Window.new
window.set_size_request(200,200)
window.realize
0871デフォルトの名無しさん
2010/06/02(水) 23:45:02wingc = Gdk::GC.new(window.window)
pixmap = Gdk::Pixmap.new(window.window,200,200,-1)
glpixmap = pixmap.set_gl_capability(glconfig)
glcontext = Gdk::GLContext.new(glpixmap,nil,true,Gdk::GL::RGBA_TYPE)
glpixmap.make_current(glcontext)
draw
window.signal_connect("expose_event") do
window.window.draw_drawable(wingc, pixmap, 0, 0, 0, 0, -1, -1)
end
#=end
=begin (2)
drawing = Gtk::DrawingArea.new
drawing.set_size_request(200,200)
drawing.set_gl_capability(glconfig)
window.add(drawing)
glcontext = drawing.gl_context
gldrawable = drawing.gl_drawable
gldrawable.make_current(glcontext)
drawing.signal_connect("expose_event"){draw}
=end
window.signal_connect("delete_event"){Gtk.main_quit}
window.show_all
Gtk.main
0872870
2010/06/03(木) 23:40:41OpenGLスレで質問しなおすことにします。
スレ汚し済みません。
0873デフォルトの名無しさん
2010/08/07(土) 14:31:40http://imageil.net/12811578281.jpg
http://imageil.net/12811580761.jpg
X Windowがある
0874デフォルトの名無しさん
2010/08/07(土) 15:40:510875デフォルトの名無しさん
2010/08/08(日) 20:07:350876デフォルトの名無しさん
2010/08/08(日) 22:25:030877デフォルトの名無しさん
2010/08/09(月) 01:04:16bash?
zsh?
0878デフォルトの名無しさん
2010/08/09(月) 02:22:070879デフォルトの名無しさん
2010/08/09(月) 17:38:24新しいよ。>>873の本は半年前に出たばかりだ
半年前が新しくないとかいうならシラネ
0880デフォルトの名無しさん
2010/08/09(月) 19:55:29HTML5が新しい技術で、そんな最新の本まで読んでるんだ
って意味かと思った
UNIX板の人の本棚が気になるな
0881デフォルトの名無しさん
2010/08/09(月) 20:35:44荒木飛呂彦と片山まさゆきしかないんだが。
0882デフォルトの名無しさん
2010/08/09(月) 21:02:29何がいい本棚なのかさっぱりわからん。
Stevensすらないし。
0883デフォルトの名無しさん
2010/08/09(月) 21:10:330884デフォルトの名無しさん
2010/08/09(月) 23:54:130885デフォルトの名無しさん
2010/08/10(火) 00:28:43http://hibari.2ch.net/test/read.cgi/pcnews/1281355124/
0886デフォルトの名無しさん
2010/08/29(日) 12:46:220887デフォルトの名無しさん
2010/08/29(日) 16:56:220888デフォルトの名無しさん
2010/08/31(火) 15:13:08TrueTypeフォントをFontPathに追加してもxlsfontsでpxlszが0になります。
フォントサイズをいくつか作成する方法はないでしょうか。
Xlibでプログラムを作成していて、フォントの指定にこまっております。
0889デフォルトの名無しさん
2010/08/31(火) 17:49:49欲しいサイズを適当に指定すれば使えるんじゃなかったっけか?
0890デフォルトの名無しさん
2010/09/01(水) 18:23:09GNOME採用しているディストリが多いし、Gtkなの?
0891デフォルトの名無しさん
2010/09/01(水) 19:17:380892デフォルトの名無しさん
2010/09/02(木) 00:10:00当然かどうかはともかく、Qtの方が書きやすくて格好いい。
つーか最初はあのコーディングスタイルに感動したわ。
0893デフォルトの名無しさん
2010/09/02(木) 00:31:39イモくさいと思いつつもGTK+を選んだ。
今はwxWidgetsを使ってる。
0894デフォルトの名無しさん
2010/09/02(木) 00:54:070895デフォルトの名無しさん
2010/09/02(木) 01:58:570896デフォルトの名無しさん
2010/09/02(木) 02:42:15Qtがお勧めみたいですね。
ちなみに、どちらも経験された方はお勧めな理由などありますか?
自分はずっとCUIのアプリケーションを作っていたのですが、ちょっとVSを使ってGUIアプリを作ってみたら、
GUIアプリも使いようによっては便利だと思い、今から勉強してみようと思っております。
0897デフォルトの名無しさん
2010/09/02(木) 05:42:430898デフォルトの名無しさん
2010/09/05(日) 02:26:210899デフォルトの名無しさん
2010/09/05(日) 02:31:130900デフォルトの名無しさん
2010/09/17(金) 20:24:07できればFLOSSなものはありますか。ドラッグアンドドロップもできると
うれしいです。
0901デフォルトの名無しさん
2010/09/18(土) 00:55:50セルというのはテーブル上の要素(Excelのセル)を指していて、
FLOSSというのはオープンソースという意味でいいのかな?
もしYesなら、Qt/GNOME2/wxWidget/Tk、お好きなのをドーゾ。
もしLLとしてRubyを考えているなら、Ruby-GNOME2かRuby/Tkがお勧め。
既成ウィジェットライブラリの豊富さが大事であればGNOME2を選べばいいし、
基本的な部品(Text/Cancas)を組み合わせて自分で一から(スクラッチで)
GUIを設計できるスキルがあるのなら、Tkが向いているかもしれない。
どちらもRuby-bindingの開発者は日本人だから、自分ではどうしようもない
問題にぶち当たった時でも、公式ML上で力強いサポートを得られる。
QtとWxWidgetのRuby-bindingは、日本語の情報が極端に少ないから、
>>900の英文読解力しだいで選べばいいと思う。(どちらかといえばQtを勧める)
0902デフォルトの名無しさん
2010/09/18(土) 01:12:120903900
2010/09/18(土) 01:32:02複式のおこずかい帳をつくってLLを勉強してみようかなあと
日本語のドキュメントがあるのは日本人なのでうれしいですが
QtとかwxWidgetがこのスレではお勧めみたいですね。うーむ
Gnomeとかだと dbus とか勉強いりますか?
Qtなら dbus の勉強は不要ですか?
Rubyだと、いまからだと 1.9系になると思いますが、どれぐらい
の寿命があるとおもっていればいいですか3年ぐらい?
あと、python を進めてくれた方、いまからだと python は 3系
をやるべきですか。python も賞味期限 3年ぐらいですか?
0904デフォルトの名無しさん
2010/09/18(土) 01:36:31Gnomeでも、PyGnomeとかPyGTKがあるから、その心配はいらない。
日本語で解説したサイトもあるし。
Pythonなら、2.6か2.7を使うのを勧める。
3はあと3年たってから、もう一度眺めなおしてから、考える、でいい。
不安なら、from __future importを使って、なるべく3に移行しやすくしておけば。
で、ちなみに、おこずかい帳とかっていうんなら、wxPythonを俺はおすすめするよ。
表とか数値セルとかだったら、wxPythonがそろってるし、Windowsにも移植は楽。
0905デフォルトの名無しさん
2010/09/18(土) 01:48:48dbusのような低レベルなIPCはGNOME/Qtであればツールキット内で吸収してくれるから、
勉強しなくてもいい。もしdbusを自分で触って独自IPC機構を実装したいなら、
Rubyの場合はdbusライブラリがあるから、それを使えばいい。(pythonにもあるハズ)
あと、今からRubyを勉強し始めるとしたら、(1.9系ではなく)バグの枯れた1.8系を勧める。
処理系として1.9.1以降は安定してきているけど、周辺の拡張ライブラリには、
まだまだ1.9対応が不完全なものが多数ある。初心者が1.9系に手を出すのは、お勧めしない。
最後に、LLの寿命とか賞味期限を気にしてるようだけど、もしそれが絶対的必要条件なら
LL(要は俺様専用ミニ言語)を自分で作れば良いだけのこと。言語処理系開発は良い勉強になる。
0906デフォルトの名無しさん
2010/09/18(土) 14:02:21人や書かせることを選んだ方がいいんじゃないか。
0907デフォルトの名無しさん
2010/09/18(土) 14:49:49自分でやる気が微塵も感じられない
0908デフォルトの名無しさん
2010/09/24(金) 10:53:41C言語は簡単なアプリケーションを作ったことがある程度です。
LinuxアプリケーションはC++が多いように感じるのですが、UNIX的にはC++なのでしょうか?
C++を勉強するか、Perlを勉強するか悩んでおります。
0909デフォルトの名無しさん
2010/09/24(金) 11:10:46後は作りたいアプリにあったものを選べばいい。
よっぽど性能を要求されるものやライブラリがないといった事情が
なければC++は使わないほうがいいけどね。メモリ管理を自分で
やるのはウザいしバグのもとだしろくなことはない。
0910デフォルトの名無しさん
2010/09/24(金) 12:29:51死にかけてる言語のPerlやるくらいならPythonやりなよ。
GTK, GNOMEのバインディングもあるし、Google Appsにもいけるし。
0911デフォルトの名無しさん
2010/09/24(金) 17:35:170912デフォルトの名無しさん
2010/09/24(金) 19:30:33まず最初に、プログラム言語は大まかにコンパイラ系とインタプリタ系に分類される。
C#やC++(それにJava)はコンパイラ系で、その高速性を生かした本格的なソフト開発に適している。
Perl(他にPythonやRuby)はインタプリタ系で、テキスト加工処理などのツール開発に適している。
最適な用途が違うから、どちらかを選ぶのではなく、どちらも勉強したほうが良い(どちらも勉強すべき)。
コンパイラ系のC++/C#/Javaについては、どれを選んでもかまわないと思う。
どれも大きなコミュニティがあるし、どれか1つをマスタできれば仕事に困ることはないから。
(UNIXにもMomoというC#の処理系があり、WPF/WCFといったWindows固有のフレームワークこそ
利用できないけど、UNIX向けGUIライブラリで本格的なアプリ開発も可能。マイナーで英語要だけど。)
インタプリタ系については、(>>910が書いているけど)Perlはその開発が行き詰まっているから、
今から勉強するのは(Perlではなく)PythonかRubyを勧める。Perlは強力な言語で一時代を築いたけど、
その誕生した時代が古いこともあって、いくつか問題を抱えていた。Python/Rubyは、そんなPerlの
問題を解決するために生まれた比較的に新しい言語で、Perlでやれた処理はすべてPython/Rubyに
置き換えられるし、オブジェクト指向のような強力な機能も追加されている。
Python/Rubyであれば、機能的には強力だから、(性能要求が厳しくなければ)本格的なアプリ開発も可能。
だから、(最初にどちらも勉強すべきとは書いたけど、)もしも趣味のプログラミングであるなら、
(コンパイラ系言語の勉強は後回しにして、)Python/Rubyだけを勉強するという選択肢もある。
Pythonを選ぶかRubyを選ぶかも判断に迷うテーマ。一般的にはPythonは簡潔で明解な言語仕様だから
初心者が最初に学ぶインタプリタ系言語に適しているし、その単純さ故に複雑な応用にも対応できる。
Rubyは(見た目がPerlに似ているから)取っ付き易いのだけれど、その奥が限りなく深い言語。
両者は真っ向勝負できる言語だから、これも好みで選べばいい。
個人的な主観(趣味)で言えば、UNIXならC++とRubyを勧めるんだけどね。
0913デフォルトの名無しさん
2010/09/24(金) 21:38:530914デフォルトの名無しさん
2010/09/25(土) 02:03:48Linuxアプリケーションは圧倒的にCが多いよ。
C++も一昔前に比べれば、相当増えたといってもいいけど、まだまだ主流はC
俺はとりあえず、自分がそれで満足しているから、という理由で、
Pythonを勧める。
Gnome/Qtなんかのバインディングも豊富だし、ライブラリも豊富
(豊富過ぎるのが欠点って噂もあるけれどw)
あとは(ドライバとか作りたい、とかいわない限りは)Cで共有ライブラリ作れる
ようになってしまえば、(Python標準ライブラリの)ctypesでほぼなんでもできるよ。
また、RedHatなんかはシステムツールがPythonで書かれている、っていうことも
大きなポイントになるかな。
(時には読まなきゃならんこともあるw)
0915908
2010/09/25(土) 10:07:04なぜPerlを選択肢に入れたかというと、まだまだ勉強不足ではありますがちょこちょこと
触っている経験があり、Perlをもう少し深くやるという意味でPerlを選択肢に入れました。
Web業界にいたこともあり、PerlはPythonやRubyに比べてるとどのサーバでも大体サポート
しているのでPerlが必要かと思っていた次第です。
確かにPerlは6が10年近く出ないままで、出るかどうかもわからないので、他の言語をやっ
ておいたほうがいいですね。
国産LinuxディストリビューションでRubyがパッケージ作成ツールなどに使われているので
Rubyのほうがいいですかね。でもRedHadはPythonなんですね・・・
PythonかRubyか考えてみます。
身の回りのアプリケーションがgtkmmを使ったものが多かったので、C++が多いのかと勘違
いしておりました。
0916デフォルトの名無しさん
2010/09/25(土) 16:39:54Androidなんかもそう。
Firefox, Chromeなんかのブラウザも今やミドルウェアだろうし。
こういうのは後回しでいいんじゃない?
Pythonでほとんどのこと出来るんだし。
0917デフォルトの名無しさん
2010/09/25(土) 19:44:53ちょっと過去のいきさつもあって、LinuxではJavaのアプリケーションってかなり少ない。
Linuxを極める方向よりも、他のOSでも潰しが効くとかっていう方向性を指向するなら
いいのかもしれないけどね。
0918デフォルトの名無しさん
2010/09/25(土) 21:00:49まああと10年は余裕で使われると思うよ、perlは。
死ぬ死ぬいってたコボルとか余裕で生き残ってるしな。
0919デフォルトの名無しさん
2010/09/26(日) 00:20:05> ちょっと過去のいきさつもあって
kwsk
0920デフォルトの名無しさん
2010/09/26(日) 04:24:58あったのよ。
Linux用のJVMとかはこの人たちが開発してたんさ
でも、ある日突然、リーダーが解散宣言してしまった。
理由はSunが情報公開やら協力やらしてくれない、という話だった。
で、以下は個人的な憶測ね。
真相がどうなのかはよくわからないのだけど、当時はまだ、UNIXといえば
Solarisであり、WS(ってのもだいぶ減ってはいたのだけど)っていえば
SPARC stationだった。
Sunが急速に台頭してきたLinuxを牽制したい、と思っていたのは事実
だろうし、そのための切り札としてJavaがあった。
SunとしてはUNIXでJavaといえばSolaris、としたかったろうし、そういう
理由で確かに嫌がらせのようなことはあったんだろうと思う。
で、最終的にはSunがLinux用のJVMを提供することになるんだが、
それまでに結構間があって、しばらく、LinuxでJavaを使うにはかなり
古いバージョンを使わなければならない時代が続いた。
(…って俺はJavaにさほどの個人的期待かけてなかったせいもあって、
かなりうろ覚え。間違ってたら訂正よろしく)
0921デフォルトの名無しさん
2010/09/26(日) 04:30:45どちらかというと、LinuxはJavaの推奨環境に近いと思ってたけど。
Javaの普及はSunの力じゃないんだから。
0922デフォルトの名無しさん
2010/09/26(日) 04:40:22まぁ、だから、Microsoftとももめたじゃん?w
で、C#ができちゃった、とw
0923デフォルトの名無しさん
2010/09/26(日) 04:44:170924デフォルトの名無しさん
2010/09/26(日) 04:57:07アプリケーションも非常に少なく、まったくおすすめできない。
Monoプロジェクトとか活発なので、むしろ、C#の方がおすすめ
できるくらいだ。
0925デフォルトの名無しさん
2010/09/26(日) 07:11:310926デフォルトの名無しさん
2010/09/26(日) 07:51:35プロジェクト引っ掻きまわす奴と周りから言われてない?
0927デフォルトの名無しさん
2010/09/26(日) 09:04:570928デフォルトの名無しさん
2010/09/26(日) 15:44:140929デフォルトの名無しさん
2010/09/26(日) 23:07:02当時、
Solaris > Linux >> その他のUNIX
だったけど? Solarisプッシュ?
0930デフォルトの名無しさん
2010/09/26(日) 23:45:47SunのLinux用JDKがあったが?
0931デフォルトの名無しさん
2010/09/27(月) 12:11:180932デフォルトの名無しさん
2010/09/27(月) 13:30:560933888
2010/10/01(金) 12:57:36pxlszが0のフォントはどのように処理すればいいのでしょうか?
0934デフォルトの名無しさん
2010/10/01(金) 15:22:450935デフォルトの名無しさん
2010/10/01(金) 19:21:26昔に書いたアプリが動かない。
0936デフォルトの名無しさん
2010/10/01(金) 21:52:280937デフォルトの名無しさん
2010/10/08(金) 21:29:19GUIのアプリを作ってみようと思うのですが、どちらがいいでしょうか?
Perlは簡単なCGIを作ったことがある程度で、Pythonはみたこともありません。
0938デフォルトの名無しさん
2010/10/08(金) 23:42:040939デフォルトの名無しさん
2010/10/09(土) 02:10:22Perlは使ったことないから比較はできんが、
Pythonの方がいいと思うぞ。
PyGNOME,PyGTKならサンプルも豊富だし。
0940デフォルトの名無しさん
2010/10/09(土) 16:29:400941デフォルトの名無しさん
2010/10/09(土) 22:02:00ccsm, dropbox, freeloader, gdebi-gtk, gjots2, gnochm, gnome-about,
gnome-codec-install, gnome-language-selector, hal-device-manager,
pitivi, pygtk-demo, software-properties-gtk, ubuntuone-preferences,
update-manager でPyGTKが使われている。
PerlGTKの方は、
checkgmail, dh_gtkmodules, glib-mkenums, gtkdoc-check, gtkdoc-fixxref,
gtkdoc-mkdb, gtkdoc-mktmpl, gtkdoc-rebase, gtkdoc-scan,
gtkdoc-scangobj, gtkdoc-scanobj
0942デフォルトの名無しさん
2010/10/10(日) 00:27:03RedHat系だともっとPythonの割合が増えるね。
0943デフォルトの名無しさん
2010/10/12(火) 23:56:28PyQt4 で
>>940
python のインデントが嫌って言ってる香具師は食わず嫌い
自分でプログラム書いたことないんだろ
0944デフォルトの名無しさん
2010/10/13(水) 02:58:32なんか、最近KDEのKはkusoのKって感じがしますが…w
つか、インデントを食わず嫌いで、嫌うのもどうかな、とは思うけど、
一長一短でデメリットもあるからな。
0945デフォルトの名無しさん
2010/10/13(水) 04:29:32gtkdocばっかりかよ
0946デフォルトの名無しさん
2010/10/13(水) 08:58:39pythonは結構仕事で書いたけどやっぱりインデント嫌いだわ。
カッコの対応がないのでインデントどこまで戻すのかわかりにくいし
一度間違えるとわけがわからん。
カッコありだとカッコの対応をもとにインデントやり直せばおかしく
なってるのがすぐわかるんだけどな。
0947デフォルトの名無しさん
2010/10/13(水) 19:03:51CやRuby、それにJSONのならコードの構造を把握しやすい。
PythonやYAMLのようなインデント強制のコードだと、
長くなるといちいち画面をスクロールさせ、目を上下に動かして
対応付けを探らないとならないからわずらわしい。
IDEを使っている人には下らない話だと思うけどね。
0948デフォルトの名無しさん
2010/10/13(水) 19:11:42のってあるの?
0949デフォルトの名無しさん
2010/10/13(水) 21:10:570950デフォルトの名無しさん
2010/10/23(土) 15:11:40についてですが、タイムスライスを使い切ったスレッドに対してOSから何らかの
シグナルが送られるのでしょうか?もしそうならシグナルの種類を知るための
手段はありますか?
0951デフォルトの名無しさん
2010/10/23(土) 15:28:520952デフォルトの名無しさん
2010/10/23(土) 15:44:300953デフォルトの名無しさん
2010/10/23(土) 15:49:49タイムスライス使いきったってことは処理は別のスレッドに移動してると考えられるから
シグナルが送られても次に処理が回ってきたときにわかる感じになるのでは?
0954デフォルトの名無しさん
2010/10/23(土) 16:41:48なるほど確かにそうですね。
ただシステムコールによってはEINTRが頻繁に送られる
ため、これがタイムスライスを使い切ったよという通知かと
思いました。そうでないととなるとEINTRは何なのかとい
う疑問が出てきたわけです。
0955デフォルトの名無しさん
2010/10/23(土) 16:43:410956デフォルトの名無しさん
2010/10/23(土) 17:05:20有限時間の待ちをするシステムコールなどはそうですね。
自分がwait状態になるので。このようなシステムコールが
失敗し、errnoにEINTRが設定されるのは何のためなのか
わからないです。
0957デフォルトの名無しさん
2010/10/23(土) 17:39:100958デフォルトの名無しさん
2010/10/23(土) 17:42:250959デフォルトの名無しさん
2010/10/23(土) 17:52:34ですね。
0960デフォルトの名無しさん
2010/10/23(土) 19:49:10スレッドに対するシグナルは実装依存であることをお忘れなく。
0961デフォルトの名無しさん
2010/10/23(土) 19:54:49> そうでないととなるとEINTRは何なのかという疑問が出てきたわけです。
たとえばkeyboard待ちをしているprocess、eg. sh
でもsignal handling期待通りに動かすには、
read(2)をEINTRで中断して、signal handlerを起動して、
その後、read(2)に再入する必要がある。
だから再入可能なsystam callは
signal handerの設定されているsignalが送られるたびに
EINTRによるsystam callの中断がある。
このアーキテクチャは、POSiXリアルタイム拡張や
multi thread当たり前のprogrammingでは、
やや古いので、新しいprocess modelが構築する必要があると思われる。
0962デフォルトの名無しさん
2010/10/23(土) 20:11:520963デフォルトの名無しさん
2010/10/25(月) 21:56:23そんなはるか昔にサポートが切れたOSを使うのはやめれ
脆弱性が死ぬほどたまってるぞ
0964デフォルトの名無しさん
2010/11/07(日) 18:23:43結局はGUIは生き残るのはGTKだけ。
0965デフォルトの名無しさん
2010/11/07(日) 19:37:38⊂⌒( ・ω・) はいはいわろすわろす
`ヽ_っ⌒/⌒c
⌒ ⌒
0966デフォルトの名無しさん
2010/11/07(日) 21:42:28pythonでGUIやるときはTK使うんじゃなかったっけ。
ああwxもあるか。
0967デフォルトの名無しさん
2010/11/07(日) 21:46:06>>937-942
0968デフォルトの名無しさん
2010/11/08(月) 02:49:330969デフォルトの名無しさん
2010/11/08(月) 11:40:330970デフォルトの名無しさん
2010/11/08(月) 12:43:170971デフォルトの名無しさん
2010/11/08(月) 13:50:140972デフォルトの名無しさん
2010/11/08(月) 23:06:10UNIX ったら set + awk + sh に決まってるじゃないか
0973デフォルトの名無しさん
2010/11/09(火) 11:00:200974デフォルトの名無しさん
2010/11/09(火) 22:54:59仮想的に複数ユーザでサーバにリクエストを出してみたいのだが。
0975デフォルトの名無しさん
2010/11/10(水) 11:16:43&つけて起動するといい
0976デフォルトの名無しさん
2010/11/10(水) 17:49:47sudo -u username command
0977デフォルトの名無しさん
2010/11/10(水) 23:01:47さんくす。バックグラウンドて走らせてできました。ただ、ネットワークIOだと思うんだがほとんどのプロセスが待ちになってスループットが伸びないな。どうしたものか。。。
0978デフォルトの名無しさん
2010/11/14(日) 01:03:04お前の事だ
脳味噌の程度が低いって事
0979デフォルトの名無しさん
2010/11/14(日) 13:46:33> んーとだな、初期のLinux用Java開発グループ、Blackdownというのが
> あったのよ。
あったあったw
0980デフォルトの名無しさん
2010/11/20(土) 04:08:192.What is the maximum number of processes per user?
3.What is the size of the virtual address cache?
4.What is the maximal open files per process?
どのコマンドで検索すればいいのか分からないので教えてください。
0981デフォルトの名無しさん
2010/11/21(日) 08:43:240982デフォルトの名無しさん
2010/11/22(月) 02:12:110983デフォルトの名無しさん
2010/11/22(月) 22:54:52しかし、プログラミングしていてファイルという印象はうけません
どのようなところで、実感できるのでしょうか?
0984デフォルトの名無しさん
2010/11/22(月) 23:00:41いや、昔はethもファイルだったんよ。
0985デフォルトの名無しさん
2010/11/22(月) 23:03:16デバイスドライバの開発が遅れてるのでしかたないから
いくつか機能殺した上でファイルを読んで代用したり
標準入力になんか入力するのが面倒だから
ファイルを流し込んで自動運転したり
0986デフォルトの名無しさん
2010/11/22(月) 23:06:02なんでもかんでもディスクリプタで扱うというところで実感する。
ソケットだろうとファイルだろうとデバイスだろうとread()/write()
って便利すぎると思うよ。
0987983
2010/11/22(月) 23:13:35それは知らなかった
/dev/xxxxってのはファイルなのですか
あと、ディスクプリタの概念がいまいちです..orz
ソケット関連の記事を読んだ時に、ちらっと読んだくらいです
0988デフォルトの名無しさん
2010/11/22(月) 23:57:020989デフォルトの名無しさん
2010/11/23(火) 00:29:02つ GNU/Hurd
レス数が950を超えています。1000を超えると書き込みができなくなります。