UNIXプログラミング質問すれ Part6at TECH
UNIXプログラミング質問すれ Part6 - 暇つぶし2ch1:デフォルトの名無しさん
05/05/24 13:14:50
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド

前スレ
Part5 スレリンク(tech板)
Part4 スレリンク(tech板)
Part3 スレリンク(tech板)
Part2 スレリンク(tech板)
Part1 URLリンク(pc2.2ch.net)

Part3のミラー
URLリンク(makimo.to)
Part2のミラー
URLリンク(makimo.to)

関連スレ
Cygwin使っている人いますか? その14 (UNIX板)
スレリンク(unix板)
Cygwin使っている人いますか? 3 (Windows板)
スレリンク(win板)


関連板
URLリンク(pc8.2ch.net)
URLリンク(pc8.2ch.net)

2:デフォルトの名無しさん
05/05/24 13:15:26
【POSiX】
The Open Group Base Specifications Issue 6
IEEE Std 1003.1, 2004 Edition
URLリンク(www.opengroup.org)


【必読書】
Advanced Programming in the UNIX(R) Environment
URLリンク(www.amazon.com)

Unix Network Programming
Vol. 1: The Sockets Networking API, Third Edition
URLリンク(www.amazon.com)

UNIX Network Programming
Volume 2: Interprocess Communications (2nd Edition)
URLリンク(www.amazon.com)

3:デフォルトの名無しさん
05/05/24 13:15:56
 man on www
URLリンク(www.linux.or.jp)

GNU Make 日本語リファレンス
URLリンク(www.ecoop.net)

Unix Programming Frequently Asked Questions 日本語訳
URLリンク(www.adl.nii.ac.jp)

4:デフォルトの名無しさん
05/05/24 13:16:39
関連スレ追加

ネットワークプログラミング相談室 Port13
スレリンク(tech板)
マルチスレッドプログラミング相談室 その3
スレリンク(tech板)

5:デフォルトの名無しさん
05/05/24 15:54:32
system関数でrmを使う以外に、ファイルを削除する方法はありますか?

6:デフォルトの名無しさん
05/05/24 15:56:07
>>5
rmの何が不満だ?

7:デフォルトの名無しさん
05/05/24 15:56:09
>>5
いいえ

8:デフォルトの名無しさん
05/05/24 16:15:27
不満はないです。ただ、Windowsなどへの可搬性が低くなるものでつかいたくないのです

9:デフォルトの名無しさん
05/05/24 16:30:28
rm.bat
でも作っておけばいい

10:デフォルトの名無しさん
05/05/24 17:38:11
>>9
(・∀・)ソレダ!!

11:デフォルトの名無しさん
05/05/24 18:20:09
unlinkってWinでも使えたっけ

12:デフォルトの名無しさん
05/05/24 18:48:21
使えるよ。

13:デフォルトの名無しさん
05/05/24 20:26:48
>>5
remove() って無い?

14:デフォルトの名無しさん
05/05/24 22:49:17
C言語のスレッドから誘導されましたので
こちらで質問させてください。

iconv関数で、EUC→ISO-2022-JP
変換はできないのでしょうか?

openでは正常リターンするのですが、
iconv関数を発行するとエラーになります・・・


15:デフォルトの名無しさん
05/05/24 22:55:38
できるけど名称がいろいろなので、OSとか環境かいてくれ

16:14
05/05/24 23:06:54
環境書くの忘れてました。

LINUX Redhat ES2.1です。
コンパイラはgccです。

今気付いたんですけど、
LINUXスレのスレ違いでしたかね?

17:デフォルトの名無しさん
05/05/24 23:16:56
Linux を UNIX と云うなら Windows だって UNIX だよね。


18:デフォルトの名無しさん
05/05/24 23:19:20
Linux: UNIX 好きが作った
Windows: UNIX 嫌いが作った

19:デフォルトの名無しさん
05/05/24 23:19:56
どう発行したらどういうエラーが出たのかね

20:デフォルトの名無しさん
05/05/24 23:38:05
劣化UNIXのDOSに劣化MacのGUIをくっつけたのがWin

と煽ってみるテスツw

21:デフォルトの名無しさん
05/05/25 00:47:37
>>20
煽るスレ間違ってる

22:デフォルトの名無しさん
05/05/25 20:10:13
今は正直MacよりWinの方が使いやすい

23:14
05/05/25 21:27:14
iconv_open("ISO-2022-JP", "EUC-JP");

でオープンして、"あいうえお"を変換してみたところ、
errnoがEILSEQ(無効なマルチバイトあり)となってしまいました。

ためしに、
iconv_open("SHIFT_JIS", "EUC-JP");
に変えてみたところ、きちんと変換はされています。

出力バッファも十分に確保していますし、
何か思い当たることがありましたらお願いします。


24:デフォルトの名無しさん
05/05/25 21:34:34
ソースコード張れ、ソースコード。

25:デフォルトの名無しさん
05/05/25 21:43:32
ISO-2002-JPってことはシフトステートの問題じゃねえの?
"あいうえお"の前後にエスケープシークエンスがついてないと
だめだと思う。

26:デフォルトの名無しさん
05/05/26 01:53:56
iso2022文字列をリテラルでプログラム内に書こうという時点で敗北

27:デフォルトの名無しさん
05/05/26 07:22:58
iconv(1)では変換できるか試してみた?

28:デフォルトの名無しさん
05/05/27 06:23:35
Num Lock の状態を判別する方法を教えてください

29:デフォルトの名無しさん
05/05/27 07:02:17
LEDランプが点灯していたら ON

30:デフォルトの名無しさん
05/05/27 07:04:20
>>29
プログラムから

31:デフォルトの名無しさん
05/05/27 07:38:04
BOOL GetNumLockStateEx(LPNMLKSTATE lpNmlkState);

32:デフォルトの名無しさん
05/05/27 08:36:07
えーと、ここ何のスレだっけ?

33:デフォルトの名無しさん
05/05/27 10:07:22
>>28
if(modifiers(void) & B_NUM_LOCK){
  //NumLockがONになってる
}


34:デフォルトの名無しさん
05/05/27 10:13:50
(・∀・) void

35:デフォルトの名無しさん
05/05/27 14:13:23
VOice ID

36:デフォルトの名無しさん
05/05/27 23:17:14
マイクロ秒単位でスリープさせたいんだけど、どうすればいいかな?
sleep関数は秒指定だし、BSDではselect関数のtimeval構造体のtv_usecが無視されるし…

37:デフォルトの名無しさん
05/05/27 23:18:51
おまえはマイクロ秒を知覚できるのかと

38:デフォルトの名無しさん
05/05/27 23:19:06
usleep, nanosleep.
と、ここまで書いて、tv_usecが無視される?
いったどこのBSD?
寝過ぎる事があるから使えないとか言わないでくれよ。

39:デフォルトの名無しさん
05/05/27 23:38:13
リアルタイムOSでもつかっとけ。

40:デフォルトの名無しさん
05/05/28 09:27:57
ほんとうにマイクロ秒単位の解像度があるOSなんて普通ないでそ。

41:デフォルトの名無しさん
05/05/28 14:36:24
sleep系は「すくなくともn秒処理を停止」するんであって
「n秒たったら処理を再開する」わけではないよ
OSの都合で処理がいつまでも復帰しない可能性はある

42:デフォルトの名無しさん
05/05/28 14:52:25
マイクロ秒の精度が欲しいなら自分でクロック計算して
ビジーループを回すのが確実

43:デフォルトの名無しさん
05/05/28 14:54:22
ビジーループだろうがコンテキストスイッチされない保証はぜんぜん
ないんじゃないの

44:デフォルトの名無しさん
05/05/28 15:04:56
スレッドの優先度上げればスイッチされないよ

45:デフォルトの名無しさん
05/05/28 15:07:31
iconv(iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft)
で変換後の文字列のバイト数、要するにoutbytesleftに最低限必要な値を求める方法って何かないでしょうか?
i

46:デフォルトの名無しさん
05/05/28 15:09:22
splで割り込まれないようにするのは?

47:デフォルトの名無しさん
05/05/28 15:40:28
>>45
iconvの変換器は状態を持つので、一回それで試してバッファを確保してもう
一度……という使い方は間違ってる。



48:デフォルトの名無しさん
05/05/30 06:20:20
標準出力が pty か pipe かってどうやって判断しればよい?

49:デフォルトの名無しさん
05/05/30 06:51:02
ioctl


50:デフォルトの名無しさん
05/05/30 07:06:53
isatty

51:デフォルトの名無しさん
05/05/30 08:50:16
APUE も読んでないやつがいるな

52:デフォルトの名無しさん
05/05/30 09:49:11
>>51 全員読んでたらこのスレの流量は1/10以下になると思われ。



53:デフォルトの名無しさん
05/05/30 11:05:07
>>51
あの系統の本で新しいの(日本語がいいなぁ)って出てないの?


54:デフォルトの名無しさん
05/05/30 11:21:01
そんなあなたにAPUE 2nd Ed.
日本語訳のことは知らないが、まあそのうち出るんじゃないか。


55:デフォルトの名無しさん
05/05/30 14:07:17
>>48
pipeかどうかはfstat(2)してS_ISFIFOで。

56:53
05/05/31 11:05:02
>>54
2nd Ed. でてたのか!
早く日本語訳出ないかなぁ。

あとUNIX Network Programming (SCTPとか追加になったやつ)のやつも翻訳でてほしい。
>篠田先生よろしくお願いします。m(_ _)m


57:56
05/05/31 11:07:42
>>54
アマゾったらまだ発売してないじゃないくぁ。APUE 2nd Ed.
近日発売になってたけど。


58:デフォルトの名無しさん
05/05/31 11:48:25
APUE ってなに?
あぷえ?

59:デフォルトの名無しさん
05/05/31 11:49:35
そう。あぷえ。

60:54
05/05/31 11:50:32
ごめんよぅ (´・ω・`)


61:デフォルトの名無しさん
05/05/31 12:03:03
アマゾンであぷえ調べたけど2ndは売ってないみたいあぷえ
Additionalなんとかさんがそれなのあぷえ

62:デフォルトの名無しさん
05/05/31 19:32:46
6/10発売じゃない?
あと10日

63:デフォルトの名無しさん
05/06/03 05:18:55
俺はあぷえは初版だけでいいな。90年代前半のUNIXについて
知ることができるし。現在のUNIXについて知りたいなら、今ある
資料読めばいいし。

64:デフォルトの名無しさん
05/06/03 09:33:01
90年代前半のUNIXなどというゴミについて知って何が楽しいのだろう

65:デフォルトの名無しさん
05/06/03 10:02:21
>>64
いや、それをいうなら70年代後半。。

66:デフォルトの名無しさん
05/06/03 17:02:43
Unix のコンソールの統合開発環境ていうのはありますか?
なければおまえがつくってください >>67

67:デフォルトの名無しさん
05/06/03 17:07:13
>>66
Emacs

68:デフォルトの名無しさん
05/06/03 17:07:19
そこで emacs ですよ。

69:デフォルトの名無しさん
05/06/03 18:03:50
emacs 以外ないだろう

70:デフォルトの名無しさん
05/06/03 18:39:59
vi

71:デフォルトの名無しさん
05/06/03 22:09:55
UNIX はログインした瞬間から統合開発環境に居る様なもんだ。
関数名補完とかは無いけど。

72:デフォルトの名無しさん
05/06/04 13:53:58
>>71
ホームディレクトリに関数名のファイルをいっぱい作っておくと言うのはどうか ?

73:デフォルトの名無しさん
05/06/04 15:17:53
>>72
echoでプログラム書く気か?

74:デフォルトの名無しさん
05/06/04 15:37:28
>>73
>>72 からどう考えたら、「echo でプログラム書く気か?」
なんて考えに至るのか非常に興味がある。

75:デフォルトの名無しさん
05/06/04 15:59:51
catの書き間違いでは?

76:デフォルトの名無しさん
05/06/04 16:00:31
シェルのファイル名補完を使ってプログラムを書こうとしてる
と考えたのではないか

77:デフォルトの名無しさん
05/06/04 16:02:03
補完が便利な言語とそうでないのがある
Cでは大して役にたたんだろう

78:デフォルトの名無しさん
05/06/05 00:15:05
あぷえが出た当時からUnixってそんなに発展したか?

79:デフォルトの名無しさん
05/06/05 10:34:53
基本的にはまったくそのまま(w

80:デフォルトの名無しさん
05/06/05 11:14:42
Linux とか

81:デフォルトの名無しさん
05/06/05 12:29:55
商用UNIXは進化しつづけていますよ。

82:デフォルトの名無しさん
05/06/05 12:51:27
あらぬ方向へと

83:デフォルトの名無しさん
05/06/05 12:55:00
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; 
  ヾ;;;ハ    ノ       .::!lリ;;r゙   UNIXにMacのGUIがつけば最強
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!


84:デフォルトの名無しさん
05/06/05 13:00:41
当時はその状態に憧れて、MinixだのMachTenだの試したもんだな。

85:デフォルトの名無しさん
05/06/06 03:27:44
soの作り方を解説してあるページ知りませんか?

86:デフォルトの名無しさん
05/06/06 03:34:38
soってなんだよ
super oppaiか?

87:デフォルトの名無しさん
05/06/06 03:40:24
じゃぁ a.out は?

88:デフォルトの名無しさん
05/06/06 06:37:49
$ touch a.out

89:デフォルトの名無しさん
05/06/06 07:34:20
ああ shared object か

90:デフォルトの名無しさん
05/06/06 07:54:42
マジボケかよ

91:デフォルトの名無しさん
05/06/06 09:44:18
super oppaiなら爆乳専門の風俗にあるよ

92:デフォルトの名無しさん
05/06/06 09:53:47
爆乳(゚⊿゚)イラネ
貧乳が(・∀・)イイ!!

93:デフォルトの名無しさん
05/06/06 16:52:01
>>92
呼んだ?w

処で質問。Solaris9のccって、C99? C89互換のオプションってあるんでしょうか。
#出先なので調べられないもんで。

94:デフォルトの名無しさん
05/06/06 20:03:38
>>88
噴いたw


95:デフォルトの名無しさん
05/06/06 20:15:11
>>93
c89 も c99 もコマンドとして提供されている

96:デフォルトの名無しさん
05/06/06 20:23:52
今のはc05

97:デフォルトの名無しさん
05/06/07 13:52:46
LinuxでWindowsのdllの様なことをやりたいのだけど、どうやってやればよいのでしょうか?

98:デフォルトの名無しさん
05/06/07 14:01:24
>>97
ふーん、so

99:デフォルトの名無しさん
05/06/07 17:13:33
#include <iostream>
using namespace std;
int main(){
cout << "Content-type: text/html\n\n" << endl;
cout << "test1" << endl;
char *s = (char *)malloc(atoi(getenv("CONTENT_LENGTH")));
cout << "test2" << endl;
free(s);
}
このプログラムをCONTENT_LENGTHが発生しない方法で起動するとtest1までしか出力されない。
という事は、freeが行われずにメモリリークが発生するのでしょうか?

100:デフォルトの名無しさん
05/06/07 18:40:01
OSが管理してくれます

101:デフォルトの名無しさん
05/06/07 18:42:19
atoi()の中でsegmentation faultして終了、じゃないのかね。


102:デフォルトの名無しさん
05/06/07 19:23:32
ちゃんとエラーチェックしろよ

103:デフォルトの名無しさん
05/06/08 01:05:05
freeでエラーが発生したかどうか知る方法がない罠
# 発生したことが分かったところでどうしようもない場合も多いが

104:デフォルトの名無しさん
05/06/08 01:22:12
CONTENT_LENGTHにすごい値が入っていたら
すごいことになりそうな悪寒。

105:デフォルトの名無しさん
05/06/08 01:35:15
.cgi 見つけたら Content-Length: 4294967295 でpostしまくるクローラでも作ったろか

106:デフォルトの名無しさん
05/06/08 07:55:22
端末(ターミナルウインドウ)の画面幅を取得する方法を教えてください


107:デフォルトの名無しさん
05/06/08 08:21:59
ioctl

108:99
05/06/08 14:06:19
レスありがとうございました。

ちなみに、
>>99のプログラムは適当に書いただけで
実際に使うプログラムでは文字数超過判定をしています。

109:デフォルトの名無しさん
05/06/08 15:40:14
>>99
> cout << "Content-type: text/html\n\n" << endl;

UNIXでは、\r\n\r\n ですんで、よろしく。

110:デフォルトの名無しさん
05/06/08 17:36:19
>>109 逆。

ところで、MIMEヘッダーフィールドのセパレータは
CRLFとRFC2045で明確に定義されている。だから99のコードの最終目的
によってはOSに関係なくCRLFでなければならない。

111:デフォルトの名無しさん
05/06/08 17:44:53
( ゚Д゚) ・・・

112:110
05/06/08 17:46:57
失礼。目的も何もこれ多分CGIだよね。なら、RFC2045じゃなくてRFC2068で
CRLFって決まってる。

ちなみにその後の出力でendlを使ってるけど、これはRFCでクライアントは
Content-type: textのメッセージボディの行末はCR/LF/CRLFのいずれでも
許容しなければならないって決まってるから、これはOK。

113:110
05/06/08 17:49:35
すまん、寝ぼけてた。orz

114:デフォルトの名無しさん
05/06/08 17:54:27
( ゚Д゚) ・・・

115:デフォルトの名無しさん
05/06/08 20:19:55
わかってないなら、無理して言わなきゃいいのに...。

116:デフォルトの名無しさん
05/06/08 21:59:31
デバイスメモリをmmap()して
読み書きできるようにはなったのですが
領域をmemcpy()などに渡そうとするとSegmentation Faultになります。
どうすれば渡すことができるようになるでしょうか。
Linux kernel2.4です。

117:デフォルトの名無しさん
05/06/08 22:21:06
mmap関係ないとこのバグじゃないの?
読み手はエスパーじゃないんだから、問題のソースぐらい引用せよ

118:デフォルトの名無しさん
05/06/08 22:36:20
だれかエロゲーつくって下さい

119:116
05/06/08 22:36:32
ふつうにできるはずということですか?。
ソースをかいつまんで書くと
src=mmap(NULL, 0x800000, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
//memcpy( src, dst, 0x800000 );//これは落ちる
cnt=0x800000;while(cnt--) *dst++=*src++;//これは通る
という感じなんです。問題の見誤りなのでしょうか。

120:デフォルトの名無しさん
05/06/08 22:38:52
memcpyのsrcとdstが逆に見えるが。

121:デフォルトの名無しさん
05/06/08 22:40:24
man memcpy

122:116
05/06/08 22:43:22
ヽ(`Д´)ノ
すんません、いま書き間違えました。

123:デフォルトの名無しさん
05/06/08 22:53:37
確保したサイズまで一旦シークしなきゃいけないんじゃなかったっけ

124:116
05/06/08 23:54:31
>>123
情報ありがとうございます。
すこしぐぐってみたところ、ファイルをmmap()するときに
マップしたサイズの実体を作るために必要みたいですね。
今回のとはもしかしたら関係ないかも。
でも試してみます。

125:デフォルトの名無しさん
05/06/09 00:17:07
>>124
デバイス相手ならシークしなくてもよかったと思うが、
本番前に/dev/memあたりで動作確認してみりゃいいんでは?


126:116
05/06/09 00:41:48
>>125
情報ありがとうございます。
雰囲気的に問題が別のところにありそうで
いろいろやり足りてなかったと思いはじめました。
もう少しがんばってみます。

127:デフォルトの名無しさん
05/06/09 01:16:09
質問です
UNIXを使うとWindowsを使うのに比べてより良い
セックスライフが送れますか?

128:デフォルトの名無しさん
05/06/09 01:18:59
>>127
センスのカケラも無い人間だな

129:デフォルトの名無しさん
05/06/09 01:21:05
>>127
windowsを使う→winnyでウハウハ→おかずたくさん→
新鮮で気持ちいい→相方放置

unixを使う→winnyが動かない→おかずが足りない→
一人でできない→相方とハァハァ

答:送れる

130:デフォルトの名無しさん
05/06/09 02:40:57
>>129
センスのカケラも無い人間だな

131:デフォルトの名無しさん
05/06/09 06:59:05
デバイスを MAP_PRIVATE でマップするってのも変だぞ。
/dev/zero ならまあいいけど。

132:デフォルトの名無しさん
05/06/09 13:35:27
>>99
> cout << "Content-type: text/html\n\n" << endl;
> (略)
> cout << "test2" << endl;

cout << "Content-type: text/html\r\n\r\n";
(略)
cout << "test1\r\n" << flush;



133:デフォルトの名無しさん
05/06/15 12:49:56
Cで指定DIR配下のファイル名全てを列挙してTXTファイルに出力する
プログラムを作成したいのですが、処理の方法や関数等がわかりません
御教授いただければ助かります。よろしくお願いします。
ソラリスです。

134:デフォルトの名無しさん
05/06/15 12:52:59
opendir, readdir

135:デフォルトの名無しさん
05/06/15 12:58:10
closedir

136:133
05/06/15 13:07:12
レスありがとうございます。参考で調べてみたのですが
直下だけは以下のコードで求められるようなのですが
次々にその配下のファイルを列挙する方法はどのうような仕組みにすれば
実現可能でしょうか?
#include <sys/types.h>
#include <dirent.h>
DIR *dp;
struct dirent *dir;
if ( (dp=opendir("/usr/bin")) == NULL ){

/* エラー */

}
/* カレントディレクトリのファイル一覧を表示 */
while ((dir = readdir(dp)) != NULL ){

printf("%s\n",dir->d_name);

}

137:デフォルトの名無しさん
05/06/15 13:19:20
readdir で得られたものがディレクトリならその下も同様に...

138:デフォルトの名無しさん
05/06/15 13:19:38
>>136
system("find DIR > TXT");
どうしても自前でreaddir()するなら、自分でディレクトリを展開しないといけない。

139:133
05/06/15 14:04:49
>>137 >>138
ありがとうございます。やはり展開と再帰処理的な機能を
自前でつくる必要があるということですね。


140:デフォルトの名無しさん
05/06/15 14:10:46
だから折角人が自前で作らない方法を提示しているのに……

141:133
05/06/15 14:14:51
>>140
すみません。system("find DIR > TXT"); だと自前しなくて
組めるという事でしたか。今必死にぐぐっているのですが
どのように使うのかわかりません。
お願いします。


142:デフォルトの名無しさん
05/06/15 14:17:44
>>141
やってみたら?
DIRとTXTを適当に書き換えて。

143:デフォルトの名無しさん
05/06/15 14:18:01
system() という関数のマニュアルページを嫁よ。

144:デフォルトの名無しさん
05/06/15 14:20:58
ていうか、
(勉強のために)プログラムを書くのが目的ならいいけど、

>指定DIR配下のファイル名全てを列挙してTXTファイルに出力する

が目的だったら、いちいちプログラム書くのはアフォだよ。

145:133
05/06/15 14:35:13
>>142
了解しました。一度ためしてみます。
ちなみに
cc test.c の命令でコンパイル実行してるのですがデバッグモードのような追跡は
どのようにすれば良いですか?教えてもらってばかりですみません。
お願いします。

>>143
再度検索します。ありがとうございます。

>>144
勉強でつくってみています。只の列挙であればLSコマンドの
ほうが便利ですよね。


146:133
05/06/15 14:37:37
systemは理解しました。コマンドを実行するわけですね。


147:デフォルトの名無しさん
05/06/15 14:43:42
>>145
gdb

148:デフォルトの名無しさん
05/06/15 14:46:01
デバッグは -g つけてコンパイル&リンクして、
ソラリスだと dbx かなんか使うんでないかな。

149:133
05/06/15 14:47:19
>>147
gdb test.c という解釈ですね?

150:デフォルトの名無しさん
05/06/15 14:47:35
>>136
ftw(3), nftw(3)

151:デフォルトの名無しさん
05/06/15 14:49:02
>>149
みんながこんだけキーワード出してんだから、マニュアルとか嫁よ。

152:デフォルトの名無しさん
05/06/15 14:51:15
>>133
会社の部下だったら首にしてるよ

153:133
05/06/15 14:57:46
>>150
このような関数もあるのですね。勉強になります。
ありがとうございました。

>>151 親身な御指導ありがとうございます。

>>152 未成年なのでまだ働けませんが、社会にでて
へまをしないように頑張りたいと思います。
御指導ありがとうございます。


154:デフォルトの名無しさん
05/06/15 15:02:15
>>153
おまえみたいなクソじゃだめだろうよ

155:デフォルトの名無しさん
05/06/15 15:04:10
未成年って働けないのか?

156:デフォルトの名無しさん
05/06/15 15:08:46
俺は5歳んときから Unix プログラミングやってたけどな

157:133
05/06/15 16:11:41
ftwを使って自前作成をしてみようと思います。
サンプルを見つけたのですが英語ばかりで皆目がつきません
int ret;
ret = ftw(strPath,ftwFunc,Depth,flg);
とこのような呼出し例を見つけたのですが、大体1つめのパラメタは検討がつくのですが
他がさぱり解りません。
ftwFuncにDIRかどうかの結果が返るという事ですよね。おそらく。

当方でうまくデバッグできないのでやっつけ本番になってしまい怖い感じです。
引き続きご協力いただければサイワイです。お願いします。


158:デフォルトの名無しさん
05/06/15 16:15:31
狂気の法案を拉致問題の安部晋三先生と阻止しよう!!【■■2ちゃんねるが消滅します】

とんでもない言論弾圧法案=「人権擁護法」が国会に提出されようとしています!!!
この法案の真の狙いは、
①社会的には、2ちゃん/ブログをはじめとしたネット世界の一般人の小うるさい言論の圧殺であり、
②政治的には、拉致問題強硬派&在日参政権反対の自民右派の消滅です。
民族(朝鮮・中国・韓国)/ 同和 /信条(宗教・層化・赤化)他に関する一切の差別的発言を禁じるという狂気の法律です。

この法律の前例の無い恐ろしい特徴は、特定人に関する言動は当然、不特定多数の集団に関する一般的発言
(朝鮮人は~~と書くこと)までも圧殺しようとする点にあります。
◆違反者には、無令状捜索・差押、出頭要求、矯正教育が待っており、それを拒否すると、
さらに罰金30万&氏名・住所などの全国晒し上げを食らう(61条)という仰天内容です。

一刻も早く、防戦する安部先生達に、日本国民の怒涛の援護射撃をお願い致します!!!
※※以下5つともアドレス中に★をはさんであります、★を消去の上、どうか必ずご覧下さい!!※※ 
URLリンク(zinkenvip.fc2web.co)<)★apo/
URLリンク(blog.livedoor.jp)★r_00/
↑↑【凶悪法案の問題点&背景の全て】
URLリンク(www.kantei.go.jp)★en.html
↑↑【首相官邸ご意見フォーム】イメージと違って、ここは非常に効果ありです!
全部読んでくれます、投稿テーマで返事が変わります!
URLリンク(meyasu.jimin.or.jp)★asu-entry.cgi
↑↑【自民党目安箱】事態は急を告げています。文章は簡単でいいので、国民の「人権擁護法」への反対意思を、
とにかく 1 秒 も 早 く 党本部に伝えて下さい!
■□■人権擁護法ストップin日比谷公会堂 6/19(日)12:30~16:00超大物国会議員登場・皆さん大挙してご参加を■□■

159:デフォルトの名無しさん
05/06/15 16:16:19
>>157
馬鹿かおまえは

なんでも手とり足とりやってやんなきゃわからんのか
「初心者だから」を免罪符にすることは許されん

金はらってアビバにでも行きな

160:ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/ftw.3.html
05/06/15 16:24:13
>>157
何度も言うけど、マニュアルを嫁よ。
そんで、ここで出てきたキーワードをつかってググりまくれ。
今の世の中、大半のことは半日ググりまくればそれなりにわかる。
英語が苦手ならオンラインの辞書やら翻訳サイトやらも利用できる。

161:133
05/06/15 16:29:52
手厳しいお言葉ありがとうございました。了解です。

162:デフォルトの名無しさん
05/06/15 16:31:08
>>133タンの人気に嫉妬(´・ω・`)

163:デフォルトの名無しさん
05/06/15 16:31:54
これがゆとり教育の弊害か

164:デフォルトの名無しさん
05/06/15 18:30:27
APUE 2nd 買ったって声を聞かないのは何故(なにゆえ)?

165:デフォルトの名無しさん
05/06/15 22:52:20
Solarisあるんだから、日本語のマニュアルもあるでしょ?
# 面倒だからdocs.sun.comは探さないけど。

↓Linuxの
URLリンク(www.linux.or.jp)

166:デフォルトの名無しさん
05/06/16 00:09:52
最近は小学校からC言語勉強してるんか?すげえね

167:デフォルトの名無しさん
05/06/16 11:47:52
>>164
まだ届いてないんじゃない?

168:デフォルトの名無しさん
05/06/16 12:56:24
まだ発売されていないんじゃ…。
URLリンク(www.awprofessional.com)
Available: Jun 17, 2005ってなっている。

ついでに21st Century Compilersも調べたらいつのまにか2007年になっているし…。
2003年くらいのはずだったのに。

169:133
05/06/16 13:11:36
>>165
ありがとうございます。参考にしてなんとかイメージ的に
コード作ってみたのですが、貼りますので指摘いただいても良いですか?
まだコンパイル通していません

170:デフォルトの名無しさん
05/06/16 13:17:10
>>169
それはひょっとしてジョークで言ってるのか?

171:133
05/06/16 13:20:22
いいえジョークではありません。自分なりの限界の理解(解釈)
で挑戦してみた次第です。貼ってみても良いですか?


172:デフォルトの名無しさん
05/06/16 13:22:29
???

173:133
05/06/16 13:24:04
僕の糞コードにご指摘をください。といっておりますのですが。。。
だめでしょうか?駄目であれば諦めます。

174:デフォルトの名無しさん
05/06/16 13:33:40
>>173
糞なら貼るな。それなりにできたと思うのならアップローダを使え。

175:133
05/06/16 13:39:21
ここに貼っては駄目でしょうか?アップローダー使った事がないのです。

176:デフォルトの名無しさん
05/06/16 13:42:52
>>175
ダメ。絶対。

177:133
05/06/16 13:44:54
大量なコードではなくおおよそ30ステップくらいですが
だめでしょうか?

178:デフォルトの名無しさん
05/06/16 13:46:52
ダメ男が都合のいい女にしつこくしている構図だな

179:デフォルトの名無しさん
05/06/16 13:56:15
また馬鹿がひつこいな

180:133
05/06/16 14:26:16
貼るなといわれたのであれば諦めます。すみません

181:デフォルトの名無しさん
05/06/16 15:07:37
>>180
せめてコンパイルくらい通してくれ

182:デフォルトの名無しさん
05/06/16 15:08:49
ソースうpまだ~ (・∀・ )っ/凵 ⌒☆チンチン

183:デフォルトの名無しさん
05/06/16 15:14:03
>>176 覚醒剤撲滅キャンペーン?
>>178 「先っちょだけでいいからさぁ」ってやつ?
>>181 同意

184:デフォルトの名無しさん
05/06/16 15:17:12
>177 133  2005/06/16(木) 13:44:54
>180 133  2005/06/16(木) 14:26:16
この間にアップローダの使い方くらいいくらでも調べられそうな気がするが。

185:133
05/06/16 15:18:47
コンパイルは通りました。いかがでしょうか?嘘ではありません

186:デフォルトの名無しさん
05/06/16 15:22:10
自治厨うざい、>>133は気にせずソース貼れ

187:デフォルトの名無しさん
05/06/16 15:24:40
つーか、他人のいうこと聞かないんだったら最初から貼ればいいのにね。

188:デフォルトの名無しさん
05/06/16 15:27:17
>>185
馬鹿かおまえは
もう自分で解決できるだろ
うせろよ

189:133
05/06/16 15:28:01
優しいお言葉ありがとうございます。それでは貼らせていただきます。
お願いします。見た感じ一覧が取得できそうだったのですが、サブフォルダ配下
のファイル列挙が行われていなさそうなのです。
2レスにわけます。


#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
#include <ftw.h>
#include <time.h>
#include <dirent.h>
int fn (const char *, const struct stat *, int);
void main (int argc, char *argv[] ){
if (ftw (argv[1], fn, 10) != 0)
perror ("ftw"); exit (2);
exit (0);
}

190:133
05/06/16 15:29:10
int fn (const char *name, const struct stat *statptr, int flag){
int i;
char *basename;
DIR *dp;/*DIRの定義*/
struct dirent *dir;/*DIRの構造体*/
struct stat buf;/*ファイル情報の構造体*/
int result;/*処理の結果戻り値*/
if (flag == FTW_D){/*ディレクトリの場合は配下の情報取得を行う*/
if ( (dp=opendir(name)) == NULL ) /*DIRを開く*/
perror( "指定されたディレクトリが存在しません。" );
while ((dir = readdir(dp)) != NULL ){/* カレントディレクトリのファイル一覧を取得 */
result = stat(dir->d_name, &buf );
if( result != 0 )/* ファイル状態情報が取得できたかのチェック */
perror( "ファイルの情報の取得に失敗しました。" );
else{
printf( "file : %s\n", dir->d_name );
printf( "size : %ld\n", buf.st_size );
printf( "Date : %s", ctime( &buf.st_mtime ) );
}
}
return 0;
}
return 0;
}

つっこみどころ満載だと予見しておりますが、必死に頑張りましたので
御教授お願いいたします。

191:デフォルトの名無しさん
05/06/16 15:31:47
俺は新手のパフォーマンスだと思う(w

192:デフォルトの名無しさん
05/06/16 15:32:06
>>189
馬鹿かおまえは
アビバに行けよ

193:デフォルトの名無しさん
05/06/16 15:35:45
>>191
つーか新手の荒らしだろ
イヤガラセ

194:デフォルトの名無しさん
05/06/16 15:40:52
>void main
ここまで読んでやめた

195:デフォルトの名無しさん
05/06/16 15:41:41
>>192
いや、アビバに行くとか以前に日本語の勉強が必要だろ。

196:133
05/06/16 15:52:31
>>194
すみません。通常intですね。理解しています。
あと不要な変数が残っていました。すみません


197:デフォルトの名無しさん
05/06/16 15:56:37
>>196
他人の意見は聞かない、ftw()のマニュアルページを読んでその程度しか理解できてない、
そんな調子ならいっそ人間止めたほうがいいよ。

198:133
05/06/16 15:58:20
>>197
厳しい御指導ありがとうございます。

199:デフォルトの名無しさん
05/06/16 16:01:54
>>198
気色わるい謙虚さだな
ほめ殺しの類似のイヤガラセか?
慇懃不礼みたいな

200:デフォルトの名無しさん
05/06/16 16:39:32
スルーした方がいいって。

201:デフォルトの名無しさん
05/06/16 16:57:52
アビバに行ってもプログラミングは教えてくれないと思う。
とマジレス

202:デフォルトの名無しさん
05/06/16 17:00:11
さっそく [アビバ プログラミング] でググってみますた。

203:デフォルトの名無しさん
05/06/16 17:31:04
アミバ最強

204:133
05/06/16 17:35:07
私の理解力では上記のコーディングしかイメージが浮かばなかったので
おそらく間違いとして認識している具体的なコードの指摘を受けれれば
ftwの使い方も理解できるようになれるかと思っております。
教えていただいたページや、その他も参照してみましたが
この関数について、実際の使用例があまりにも少なく、皆様のスキルを
お借りし、理解を深めようとおもいました。迷惑だったなら申し訳ありません。

205:デフォルトの名無しさん
05/06/16 17:35:39
一行に数字が書いてあるファイルが或とします
1
2
3
等、それは複数あります

これを、hoge[]に変数1つにつき一行の値を入れて行きたいのですが
このコードをかいていただけないでしょうか?

206:デフォルトの名無しさん
05/06/16 17:41:56
いただけません。

207:デフォルトの名無しさん
05/06/16 17:42:40
@hoge = <>;

208:デフォルトの名無しさん
05/06/16 18:02:00
>>207
そっか、言語指定無かったもんな

209:デフォルトの名無しさん
05/06/16 18:02:29
hoge[]
と書いてあるわけだが

210:205
05/06/16 18:03:28
すいません
C言語です

211:デフォルトの名無しさん
05/06/16 18:06:10
#include <stdlib.h>

int main(void)
{
  system("perl -e '@hoge = <>;'");
  return 0;
}

212:205
05/06/16 18:08:21
perlは入っていません

また、systemとかは使わずに
C言語しか、使わずにそのひとつのファイルで完結するように
システムコール以外の呼出はしないようにお願いします

213:デフォルトの名無しさん
05/06/16 18:08:50
断る。

214:デフォルトの名無しさん
05/06/16 18:08:52
unixらしい宿題ですね

215:デフォルトの名無しさん
05/06/16 18:10:22
hoge[NR] = $1;
って書きにきたら時既に遅しw


216:デフォルトの名無しさん
05/06/16 18:11:42
>>212
>C言語しか、使わずにそのひとつのファイルで完結するように
>システムコール以外の呼出はしないようにお願いします
ストリーム系ライブラリは使っちゃいけないの?

217:デフォルトの名無しさん
05/06/16 18:11:48
答えない奴は2chをみないで下さい

218:デフォルトの名無しさん
05/06/16 18:13:05
スレ違いだから宿題スレに行けよ

219:デフォルトの名無しさん
05/06/16 18:13:17
標準ライブラリの読み込みは可能です

220:デフォルトの名無しさん
05/06/16 18:18:45
>>219
またおまえか
アビバに行けっつのがわからんのか

221:デフォルトの名無しさん
05/06/16 18:21:30
>>218, >>220
>>217

222:デフォルトの名無しさん
05/06/16 18:43:25
void hage(int hoge[], char const *fn){
int fd = open(fn, O_RDONLY); struct stat s; fstat(fd, &s);
{const char *fbuf = mmap(0,s->st_size, PROT_READ,MAP_PRIVATE,fd,0);const char *p;
int i=0; hoge[i]=0; for(p=fbuf; p!=&fbuf[s->st_size]; p++)
{ if( '0'<=*p&&*p<='9' ){hoge[i]=hoge[i]*10+*p-'0'; } else if( hoge[i] ){ i++; hoge[i]=0;}}
munmap(fbuf,s->st_size);close(fd);}}

エラーチェックは省略。コンパイルは掛けてない。システムコールのみ使用。数字はASCIIに従うこと。

223:205
05/06/16 18:43:39
誰かお願いします

224:デフォルトの名無しさん
05/06/16 18:44:54
あ、sはポインタや無かった。脳内コンパイルはあかんなぁ。やっぱし。

225:205
05/06/16 18:48:41
fopenを使ってお願いします

226:デフォルトの名無しさん
05/06/16 18:52:47
まじめに答えてるやつは
宿題やらされてるのがわからんのか

227:デフォルトの名無しさん
05/06/16 18:57:21
>>226
誰ひとり真面目に答えてないのがわからんのか?(w

228:デフォルトの名無しさん
05/06/16 18:58:27
void hage(int hoge[], const char *fn){
FILE* fp = fopen(fn, "r"); struct stat s; fstat(fileno(fp), &s);
{const char *fbuf = mmap(0,s.st_size, PROT_READ,MAP_PRIVATE,fileno(fp),0);
const char *p;int i=0; hoge[i]=0; for(p=fbuf; p!=&fbuf[s.st_size]; p++)
{ if( '0'<=*p&&*p<='9' ){hoge[i]=hoge[i]*10+*p-'0'; } else if( hoge[i] ){ i++; hoge[i]=0;}}
munmap(fbuf,s.st_size);fclose(fp);}}

ほい。fopen版。これ以上条件を小出しにするようなら、おいらは対応しないから。

229:デフォルトの名無しさん
05/06/16 19:00:13
うっせぇーばーか

230:デフォルトの名無しさん
05/06/16 20:12:14
>>205
スレ違い
スレリンク(unix板)l50

231:133
05/06/16 23:56:29
私のところも何とかお願いできませんか?

232:デフォルトの名無しさん
05/06/17 00:05:53
>>138 の文字列部分のコマンド入力で済むことを、わざわざCで書かなければいけないってのが、
「ちょっと見てやろうか」という気持ちを全く起こさせない原因なのだよ

233:デフォルトの名無しさん
05/06/17 00:31:41
/* それでもCでやる馬鹿 */
#define CMD_STR "find %s>%s"
void func(const char * targetDir, const char * outputFile)
{
if (targetDir == NULL || outputFile == NULL) {
return;
}
char * buf = malloc(strlen(targetDir) + strlen(outputFile) + sizeof(CMD_STR));
if (buf == NULL) {
return;
}
sprintf(buf, CMD_STR, targetDir, outputFile);
system(buf);
free(buf);
}

234:デフォルトの名無しさん
05/06/17 00:48:08
system()で呼び出すだけでは、それこそまったく意味が無いな。
より実用的でありがちなのはpopen()を使う例だろう。

235:133
05/06/17 00:55:03
すみません。すべてネタをばらします。実はですね
VBで作った画面があるんですが、機能詳細はWindows端末から
ボタンを押してあるリモート側DIRの下にあるファイル一覧を取得して
リダイレクトした結果をダウンロードする仕組みがあるのです
要はLIB管ツールのプログラム納品資材確認機能だったのですが、以前
私が担当していた環境はVMSマシンでした。ところが今年から
UNIX管理資材とかLINUX管理資材とかが出現してきて以前のVMSの
総合的な動作を丸々流用して使いまわししないといけなくなったのです
VB画面のボタンからUNIXへリモート処理する仕組みは丸々流用できるので
そこで明示的にコールしているVMS上においているDIR情報取得ツールを
UNIXとかLINUXで同じように動くように作成したいのです。可能でしょうか?



236:デフォルトの名無しさん
05/06/17 00:57:40
find

237:133
05/06/17 00:59:16
findでは半年前のファイルに対しての情報で時刻部が欠落してしまうのです
もちろんソラリス10だとLSの--full-timeで問題なく落とせるわけですが

238:デフォルトの名無しさん
05/06/17 01:02:08
>>235
そんならpopen(3)でfind(1)を呼ぶのが一番ラクだな

FILE *fp;
char buff[8192];

snprintf(buff, "find ......);
FILE *fp = popen(buff, "r");
while (fgets(buff, sizeof buff, fp)) { ..... }
pclose(fp);

こんな感じだ

239:デフォルトの名無しさん
05/06/17 01:03:32
>>237
なら取得できたファイル名に対してstat()すればよかろ

240:133
05/06/17 01:08:47
>>238
その手法は一度調べてみます。ありがとうございます。

>>237
上部の私が貼ったソースで既にstatが見受けられると思いますが
statのメイン部分では問題なくfullTimeを取得できる結果を得ていますので
その個別にstatを行うための拠点DIRにおいてそれぞれ処理する方法を
お伺いしている次第なのです。
指定したDIR配下の詳細データを列挙したくおもいます

241:デフォルトの名無しさん
05/06/17 01:17:22
自分で出来ないなら仕事辞めれ
他のまともな人に雇用を譲れ

242:133
05/06/17 01:24:23
それはごもっともかもしれません
自分で解決して生きていかねばならない世の中ですから
いつまでも他人に甘えて生きていけるわけではありません
重々承知です。

243:デフォルトの名無しさん
05/06/17 01:36:28
つか今の時代ネットが随分便利になってるし
キーワードもらえればそれで十分でしょ?
宿題○投げ学生サンじゃないんだしさ、給料貰ってんでしょ、それで?

といいつつ。

>>240
stat()の引数に指定するパス名はフルパスか、カレントディレクトリからの
相対パスでなければならない。
popen()でfind(1)を実行する場合に、カレント以外のディレクトリを
指定したんなら、そのディレクトリのフルパスにfind(1)から出力
されたパスを足せばいいでしょ。
そんぐらいは、できるよね?


244:デフォルトの名無しさん
05/06/17 06:54:17
ダメ男にあれこれやってやると、ますますダメな奴を作る事になるぞ
ああ、それが狙いか?

245:デフォルトの名無しさん
05/06/17 07:37:54
なんかSolarisでfulltimeで取得できる云々をみて思い出したが、>>133は前スレの>>970か同じ職場のやつかな。
>>980のソースを弄るだけでいいと思うが。

246:デフォルトの名無しさん
05/06/17 07:58:21
>>153

247:デフォルトの名無しさん
05/06/17 08:01:21
235と153が激しく矛盾している点について。

248:デフォルトの名無しさん
05/06/17 08:04:00
>>245
漏れもそれを思い出していますた。

249:デフォルトの名無しさん
05/06/17 08:56:39
狼少年あらわる

250:デフォルトの名無しさん
05/06/17 10:23:16
みんな気をつけろ!
コイツはとんだクワセ者だぞ!

251:デフォルトの名無しさん
05/06/17 10:35:13
だからスルーしとけと言ったのに。

252:デフォルトの名無しさん
05/06/17 12:36:36
もう来ないだろ。俺は面白かったから文句無い

253:デフォルトの名無しさん
05/06/17 13:02:08
>>244
イイんじゃね?
仕事ができないクズは、一度どうしようもないくらい追い込まれないと治らないから(笑)。

254:デフォルトの名無しさん
05/06/19 10:15:48
ftw(3)なんて関数あるんだ、知らなかった。
ほんのちょっと楽が出来るという微妙な関数だな、これ

#include <stdio.h>
#include <ftw.h>

int func(const char *path, const struct stat *st, int type)
{
  printf("%s is ", path);
  switch(type){
  case FTW_F:  printf("File\n"); break;
  case FTW_D:   printf("Directory\n"); break;
  }
  return 0;
}

int main(int ac, char **av)
{
  ftw(av[1], func, 10);
}


255:デフォルトの名無しさん
05/06/19 15:32:49
微妙というか発想はLisperっぽいね。

256:133
05/06/20 00:42:41
ありがとうごさいました。うまく動きそうです。
感謝します。皆さまの数々の親身な対応に頭があがりません。ありがとうございました。

257:デフォルトの名無しさん
05/06/20 01:38:27
オオカミがきたぞ

258:デフォルトの名無しさん
05/06/20 17:58:25
良く分かってないので変な質問かもしれませんが…

mkdir -p /xxx/xxxx 2> /dev/null

この 2> ってどういう意味なのでしょう?

259:デフォルトの名無しさん
05/06/20 18:05:41
man pipe

260:デフォルトの名無しさん
05/06/20 18:10:26
URLリンク(www.google.co.jp)

261:デフォルトの名無しさん
05/06/20 18:11:04
>>258
ファイル記述子の2番への出力をりだいれくと。

262:デフォルトの名無しさん
05/06/20 18:11:50
>>258

n> file
は、ファイルディスクリプタ n を file にリダイレクトする。
ファイルディスクリプタ 2 は標準エラーに割り当てられているから、
その例では、mkdir の標準エラーへの出力を /dev/null にリダイレクトして
捨てている。

263:デフォルトの名無しさん
05/06/20 18:14:46
>>261-262
ありがとうございます

264:デフォルトの名無しさん
05/06/20 18:21:14
>>258
>>259が1番正確な答えをいってるのになぜ感謝をせん

>>261->>262
お前等も甘やかすな
スレ違い以上に板違いだろが
痔になって死ね

265:デフォルトの名無しさん
05/06/20 18:24:28
黙れホモ野郎

266:デフォルトの名無しさん
05/06/20 18:26:50
> >>259が1番正確な答えをいってるのになぜ感謝をせん

それを言うなら man sh あたりだろwwww


267:デフォルトの名無しさん
05/06/20 18:34:57
うは
ほんとに
man pipeに載ってるね

268:デフォルトの名無しさん
05/06/20 19:05:43
APUE 読めってことだね

269:デフォルトの名無しさん
05/06/20 22:19:49
>>268
高い。厚い。
あの手の本は電車の中で読めるように5冊ぐらいに分けて欲しいよ。

270:デフォルトの名無しさん
05/06/20 22:38:25
URLリンク(www.amazon.co.jp)
非常にハイレベルです, 2003/06/01
レビュアー: 本音のレビューアー (プロフィールを見る)   東京都 Japan
中途半端なレベルのエンジニアが買うと痛い目を見ます。

プログラミングのセンスがあり、ネットワーキングについてもそれ相応の知識と経験がある方が読むと、骨の隋まできっちりと把握できるでしょう。

非常に高価な本なので、一度本屋で目を通してから買うことをお勧めします。


271:デフォルトの名無しさん
05/06/20 22:47:41
AdvancedWindowsの方がためになるし、高い。

272:質問です
05/06/20 23:54:26
質問です、
共有ライブラリの検索パスが通っているディレクトリを調べるには
どうすればよいのでしょうか?

273:デフォルトの名無しさん
05/06/20 23:57:49
ld.so.conf

274:デフォルトの名無しさん
05/06/21 00:10:40
$ echo $LD_LIBRARY_PATH | awk -F: '{ for (i = 1; i <= NF; i++) { print $i } }'; ldconfig -p | tail +2 | awk '{ print $NF }' | xargs -n 1 dirname | sort | uniq

こんなかんじ?

275:デフォルトの名無しさん
05/06/21 00:26:42
まー、OSによって違うしね

276:質問です
05/06/21 00:30:22
>>273
ありがとうございます。/etc/ld.so.confにそれらしきリストが見つかりました。
ただそれにパスを加えて再起動しても、コンパイル時パスが通ってないようで苦戦しております

277:質問です
05/06/21 00:37:02
共有ライブラリを作りたいのですが、うまくいきません、問題点がわかりましたら教えて下さい。

・共有ファイル側makefile(ソースファイル2つあります):
tws.so:tws_envvalue.o tws_time.o
g++ -shared tws_envvalue.o tws_time.o -o tws.so
tws_envvalue.o:tws_envvalue.cpp
g++ -fPIC -c tws_envvalue.cpp -o tws_envvalue.o
tws_time.o:tws_time.cpp
g++ -fPIC -c tws_time.cpp -o tws_time.o
install:
cp -f *.h /usr/include/tws/
cp -f tws.so /usr/lib/
(makeでコンパイルした後make install でsoファイルを移動しています。)

・利用ファイル側
cgi_env.cgi:cgi_env.o
g++ -l /usr/lib/tws.so cgi_env.o -O3 -o cgi_env.cgi
cgi_env.o:cgi_env.cpp
g++ -c cgi_env.cpp -D LINUX -o cgi_env.o
install:
cp cgi_env.cgi ../../public_html/

このようにすると。利用ファイル側コンパイル中
g++ -l /usr/lib/tws.so cgi_env.o -O3 -o cgi_env.cgi
/usr/bin/ld: cannot find -l/usr/lib/tws.so
と出力され、あるはずのtws.soが認識されません。一体何が悪いのでしょうか。
gcc バージョンは 3.2.2 20030222 (Red Hat Linux 3.2.2-5)と出ました。

278:デフォルトの名無しさん
05/06/21 00:48:15
gcc -Lディレクトリ名 -o a.out foo.o bar.o -lライブラリ名

279:デフォルトの名無しさん
05/06/21 00:49:12
>>277
-ltwsなんじゃないの?

280:デフォルトの名無しさん
05/06/21 01:00:47
-L/usr/lib -ltwsだと
/usr/lib/libtws.(so|a) をさがすのでは

-Lも-lもつけないで
g++ foo.o bar.o /usr/lib/tws.so -o unko
とか?

281:質問です
05/06/21 01:14:46
>>280さんのご指摘がビンゴでした、そのまんまの記述で無事コンパイル&使用が出来ました。
>>278 >>279さんも合わせてお礼申し上げます、助かりました。

282:デフォルトの名無しさん
05/06/21 08:55:54
ウンコー

283:デフォルトの名無しさん
05/06/24 17:27:56
教えてください。Cソースコードでテキストファイルに結果を書込みしたいのですが
どうすれば良いでしょう??

284:デフォルトの名無しさん
05/06/24 17:39:22
system("echo hoge > hoge.txt");


285:デフォルトの名無しさん
05/06/24 17:39:52
ソースコードでは相当に難しい

286:デフォルトの名無しさん
05/06/24 17:49:09
cintで実行したら、ソースコードで書き込んだと言うことにならないか?
というかスレ違いです、>>283さんよ。
UNIX独自じゃないしね。(binaryならあれだけども)

287:デフォルトの名無しさん
05/06/24 22:45:48
ソースコードでファイルに書くのは無理でした。

プログラムの実行結果の値をプログラム中から指定したファイルに
書き込みたいです。
exit(1); とか main の中の return -1; とかの 1や -1のことです。

どのような方法が可能でしょうか?

288:デフォルトの名無しさん
05/06/24 22:55:46
return の意味わかってるか?

289:デフォルトの名無しさん
05/06/24 22:56:42
int main () {
pid_t pid;
int st;
switch((pid = fork())) {
case -1: abort();
case 0: break;
default: waitpid(pid, &st, 0);
WriteToFile(WEXITSTATUS(st));
_exit(0);
}
... /* 実際の処理 */
}

290:デフォルトの名無しさん
05/06/24 22:58:25
>>288の答えの方が的確だな

291:デフォルトの名無しさん
05/06/24 23:41:31
基本的にPerlしか判らないんですが、ネットワークの負荷試験&自分の為に
CでSocketプログラムを作りたいと思いました。

簡単なTCPで通信をするプログラムは出来たのですが
負荷試験目的でパケットサイズを小さいのから大きいのを指定して
遅れる様にしたいと思います。

この場合は送る文字で制限するのが効率が良いのでしょうか?
また、1500バイト以上の文字列をランダムなバイト数で送る為には
やはり送る時のバッファサイズ(?)で何とかするのがスマートなんでしょうか?

なんか書いていて他にどうするんだって気になって来ましたが
普通のFTPとかはどういう単位でパケットサイズを決めているのでしょうか?

環境 : linux,solaris,FreeBSD,HP-UX for GCC

292:デフォルトの名無しさん
05/06/24 23:45:50
ソース嫁

293:デフォルトの名無しさん
05/06/24 23:50:42
>>291
小っさいデータで送ろうとしても、一つのパケットにまとめられちゃう事が
あるから注意。

294:デフォルトの名無しさん
05/06/25 00:06:09
>>291
TCP/IPの上に乗っかっているアプリケーションプログラマは、
「パケットサイズ」のことなんか考えちゃいかん
TCP/IPはあくまでバイトストリームのプロトコルだ。

なお>>293の言ってることについては「Nagleアルゴリズム」ででもぐぐれ。

295:291
05/06/25 00:25:57
いや、ソースを読めりゃ問題無いんですが・・・。
まぁ勉強しろってのも全くではありますが。

某糞ネットワーク機器のバフォーマンスを計る為に自分で作りたかっただけで
自分がやりたい事をやってくれるソフトは、既にあったりはするんです。

Nagleアルゴリズムってのをぐぐってみました。
どういう物かはなんとなく判りましたがコレってWindowsだけって
認識でいいんですか?

> TCP/IPはあくまでバイトストリームのプロトコルだ。

発送を変えて「どんなサイズのパケットが来たか」でやってみる事にします。
いや、やり方はしらんけど。


296:デフォルトの名無しさん
05/06/25 00:29:35
>>295
>どういう物かはなんとなく判りましたがコレってWindowsだけって

間違い

297:デフォルトの名無しさん
05/06/25 00:39:04
>>287

#! /bin/sh
./a.out
echo $? > filename


298:デフォルトの名無しさん
05/06/25 00:42:21
>>291
ネットワークプログラミングスレの方が適切だと思う。
既に的確な答えが返ってきているのにこう書くのも何だが…

あっちのスレのテンプレにあるサイトも読んでね。
UNIX SocketプログラミングFAQは必読。

299:291
05/06/25 00:56:59

> >どういう物かはなんとなく判りましたがコレってWindowsだけって
>
> 間違い

いててて。。。

> 298
とりあえず、あっちを熟読してみます。
ですが、なんかやりたい事と自分のスキルの次元が違いすぎる勘を感じました。

300:デフォルトの名無しさん
05/06/25 06:55:16
詳解TCP/IP の sock とか

301:デフォルトの名無しさん
05/06/26 00:20:00
Shift_JIS文字列を扱う場合、2バイト目がエスケープ文字だった場合に
問題が起きますよね。

WindowsではAPIやVC++のみに用意された関数で処理できるようですが、
Unix・Linuxではどのようにして問題を回避するのでしょうか?
自作関数を作る必要がありますかね?
ライブラリで処理できればいいんですが・・・

302:デフォルトの名無しさん
05/06/26 00:26:08
iconvで16bit unicode charあるいはutf8に汁

303:デフォルトの名無しさん
05/06/26 00:26:49
今からプログラミングを始めるには何言語がいいっすか?

304:デフォルトの名無しさん
05/06/26 00:31:04
問題は起きる場合と起きない場合がある。
というか、UNIXでそんなに大きな問題が出るか?

305:デフォルトの名無しさん
05/06/26 00:55:20
>>301
どういう問題が起きるかは、どういう種類の処理をしたいかによるだろ。
だから、対応もケースバイケースにならざるを得ない。

2byte目とのマッチング、1byte目と2byte目を分断、なんてのは、まあ、
まずいな。これは別に2byte目が\の場合には限らない。

内部処理は全部wchar_tにして逃げる手もあるが、システムコール等に
Shift_JISで渡す必要があって、しかもそれが問題を生じる可能性がある
と判断したなら、何か手を考える必要があるわなあ。



306:デフォルトの名無しさん
05/06/26 01:21:43
UIを持つアプリケーションでは、文字の並び順が問題になる。

307:デフォルトの名無しさん
05/06/26 04:39:50
>>301
文字列の頭から1文字ずつ調べて(途中から調べると2バイト目とAscii文字との区別がつかない場合があるので誤認識する)
Shift_JISの1バイト目に該当するコードが出てきたら次の文字は2バイト目と判断して、問題が起きないように適切な処理をするか
Unicodeなり、EUCなりに変換するしかない。

308:デフォルトの名無しさん
05/06/26 06:12:09
killコマンドで殺される際に、それを捕捉して何らかの処理をすることは可能でしょうか?

309:デフォルトの名無しさん
05/06/26 06:23:16
man signal かな

310:デフォルトの名無しさん
05/06/26 11:38:50
>>308
但し、kill -KILLは捕捉できない。

311:質問です
05/06/26 11:43:20
UNIXというよりWeb上の規格についての質問なのですが、
<FORM enctype="multiform/form-data">でブラウザがサーバーにstdinに送信するデータの形式について知りたいです。
inputフォーム2つとfileフォーム1つで実際に送信されたデータをとって見たら。
-----------------------------7d51d429260446
Content-Disposition: form-data; name="key1"

value1
-----------------------------7d51d429260446
Content-Disposition: form-data; name="key2"

value2
-----------------------------7d51d429260446
Content-Disposition: form-data; name="file1"; filename="C:\Documents and Settings\all user\デスクトップ\1119279517350.swf"
Content-Type: application/x-shockwave-flash

FWSク#7 x ー $マC ・
d?
(以下ファイルのデータが続く)
-----------------------------7d51d429260446--

↑このようなデータが取れました、これを見るにContent-Dispositionの行の次にContent-typeが指定されていたら1行空けてファイルデータ、
省略されていれば1行空けてフォームデータと見て良いのでしょうか?正確な規格文章が(出来れば日本語で)あったら教えて下さい。

312:デフォルトの名無しさん
05/06/26 12:09:55
man form

313:デフォルトの名無しさん
05/06/26 12:11:20
>>311
ブラウザによる
ってか、板違い
Web製作技術板だとかそんないたがあっただろ
そこいっとけ

314:デフォルトの名無しさん
05/06/26 12:21:59
>>311 RFC1806

315:デフォルトの名無しさん
05/06/26 12:37:19
>>311
RFCの日本語訳はネットワークプログラミング版のテンプレURL集をみよ。

316:訂正
05/06/26 12:37:48
>>315
ネットワークプログラミング版→ネットワークプログラミングスレ


317:デフォルトの名無しさん
05/06/26 12:40:29
日本語訳しか読めない奴がよく技術本とか言うな

318:デフォルトの名無しさん
05/06/28 15:57:07
ファイルデスクプリタからfdopen()してFILE *を得るように、
文字列から同様にFILE *を得ることはできませんかね?


319:デフォルトの名無しさん
05/06/28 16:04:31
>>318
文字列をファイル名と見立ててfopenすればいいんじゃないかな

320:あああ
05/06/29 00:50:49
次のプログラムをLittle EndianのCPUで実行したとき、
それぞれcmdとdataのメモリの内容、メモリから読み出した直後
のレジスタの内容、実際に出力される内容はそれぞれどのような
値になるでしょう?

char *cmdreg = CMD_PORT, *datreg=DATA_PORT;

unsigned int16 cmd;
unsigned int32 data;

cmd=0x87cd , data=0x20030719;
outw(cmdreg,(cmd & 0xff00)>>8 | (cmd & 0xff)<<8);
outl(datreg, data);




321:デフォルトの名無しさん
05/06/29 02:31:09
なんで自分でやらないの?

322:デフォルトの名無しさん
05/06/29 03:09:42
>>318-319 レス感謝。
CでC++のistrstreamみたいなことがやりたかったのです・・・。

323:デフォルトの名無しさん
05/06/29 05:20:36
書き込みだけなら、sprintfでポインタをずらしていけば充分

324:デフォルトの名無しさん
05/06/29 05:28:50
>>322
FILE*を相手にする関数をオンメモリのバイト列にも使えるか、というわけだよな。
*BSDならば、funopen()を使えば実現できる。でもまあ、移植性はない。

325:デフォルトの名無しさん
05/06/29 07:07:05
>>324
glibcだとfopencookie
funopenは結構古くからあるけど、ネーミングの悪さからか、あまり広まらず。
逆にfopencookieを使っているアプリ(例えばPHP)では、
funopenをwrappingするような状況。(ノ∀`)アチャー

326:デフォルトの名無しさん
05/06/30 19:04:50
hoge@hogehoge:~/test/ncurses$ make
gcc -c -Wall -std=c99 -D__USE_POSIX199309 test.c
test.c: 関数 `main' 内:
test.c:5: error: storage size of `req' isn't known
test.c:8: 警告: implicit declaration of function `nanosleep'
test.c:5: 警告: unused variable `req'
make: *** [test.o] エラー 1

#include <time.h>

int main(void) {
  struct timespec req;
  req.tv_sec = 0;  req.tv_nsec = 33000;
  nanosleep(&req, NULL);
  return 0;
}

debianでプログラミングしていてnanosleepを使いたいのですが

time.h
# ifdef __USE_POSIX199309
/* Pause execution for a number of nanoseconds.
  This function is a cancellation point and therefore not marked with
  __THROW. */
extern int nanosleep (__const struct timespec *__requested_time,
       struct timespec *__remaining);
# endif

となっていたので-D__USE_POSIX199309としたのですがだめでした。
どうやれば使用できるようになるのでしょうか?

327:デフォルトの名無しさん
05/06/30 19:19:19
>>326
-std=c99
が邪魔してるようですね


328:326
05/06/30 20:01:20
>>327
ほんとだ。
-std=gnu99
にしたら成功しますタ。

329:デフォルトの名無しさん
05/07/01 06:24:38
forkとかspawnてどこで管理してるの?

330:デフォルトの名無しさん
05/07/01 07:14:00
OS

331:デフォルトの名無しさん
05/07/01 07:47:43
質問の意味も答えの意味もわからん

332:デフォルトの名無しさん
05/07/01 09:24:53
俺なんかそのレスの意味もわからん

333:デフォルトの名無しさん
05/07/01 10:01:03
ゆとり教育の弊害で国語力が低下した俺様が来ますたよ

334:デフォルトの名無しさん
05/07/01 10:11:06
なんでもかんでもゆとり教育のせいにすんなよ

335:デフォルトの名無しさん
05/07/01 10:27:47
creat(2)で最後の'e'が抜けたのもゆとり教育のせいだよ。
子供にはスペルくらいちゃんと教えないとね。

336:初心者
05/07/01 12:50:55
ファイル・システムは、最終的にどれくらい大きくなるか
予測不能なエリアをアサインし、また、高速にアクセスす
る必要がある。UNIXでは、これをどのように実現している
か図を使い、述べよ。というわけのわからない問題が出てきました。
どなたかぜひ教えてください!

337:デフォルトの名無しさん
05/07/01 12:53:09
○ <- ディスク
---------------- 壁
□ <- メモリ


ってか、板違い



338:デフォルトの名無しさん
05/07/01 13:09:02
>>336
プログラミング関係ないので板違いです。続きはUNIX板の質問スレへでも。

たぶんinodeがデータ本体をどういう風に保持しているか調べればいいのでしょう。
URLリンク(www-db.stanford.edu)

339:デフォルトの名無しさん
05/07/02 21:30:17
329であほな事を聞いてるのは自分です。
あほさに未だ気付けません、forkとかOS?カーネル?てどこです?
プロセスってなんかの管轄内にあるわけですよね?ここから間違ってまるんですかね
どこ見ればいいんでしょうか、
psのソースみたらわかるかと思って軽い気持ちで突入したんですが
ものっそい事になってて目が痛いです。マクロびゅんびゅん飛んでくるし
追い詰めたと思ったら未知の言語で、助けてください

340:デフォルトの名無しさん
05/07/02 21:38:49
>>339
forkってのは野茂の決め球で、すごい角度でOSに対して投げつける。
OSはそれを受け取るとなんと孫六ボールになって分身。氏ねボケ連発。
プロセスはOSの管理下にあり、OSがプロセスを監視。
プロセスが何人載っても大丈夫な設計になっている。(でも上限あり)
psのソースにはもちろん載っていない。
載っているのはカーネルのソースなわけだが、Linuxくらいなら簡単。
プロセス管理といえばスケジュール管理から入った方がロリ簡単。
sched.cを探して、印刷して、嫁

341:デフォルトの名無しさん
05/07/02 21:46:23
プログラミングを始めたばかりで、ポインタのあつかいがよくわからないのですが
int main(short argc, const char **argv){
という関数のなかから

argc, argvを違う関数に渡したいのですが

hoge(argc, &&argv); では
test.c:67: error: label `argv' used but not defined
といわれ
hoge(argc, &argv); では
test.c:67: warning: passing arg 2 of `hoge' from incompatible pointer type
といわれるのですが、正しくはどうするのでしょうか?

342:デフォルトの名無しさん
05/07/02 21:48:13
hoge(argc, argv)

343:341
05/07/02 22:04:51
>>342
ありがとうございます

そしたら、
int hoge(int argc, ここで、argvはなんてうけたらいいのでしょうか?

344:341
05/07/02 22:08:34
すいません 途中で送信してしまいました

現在は
int hoge(int argc, char **argv){
で、うけているのですが
これを
int hoge(int argc, char argv){
にすると、ウォーニングではなくエラーが出てしまいます

345:デフォルトの名無しさん
05/07/02 22:13:57
はい

346:デフォルトの名無しさん
05/07/02 22:17:24
>>344
そんな変更をする必要は無い
おまえはUNIXのスレに来る前にC言語の勉強をしなさい

347:デフォルトの名無しさん
05/07/02 22:56:40
>>340
おおーーなるほど、
何を指してるのかはわかってませんけど
辿り方がわかった気がします。
ドキュメント全部その切り口で書かれてればいいのに
sched.c ご馳走様です。
感謝!!ありがとう

348:デフォルトの名無しさん
05/07/03 03:19:11
ソース読む前に本でも読んだ方がいいだろw

349:デフォルトの名無しさん
05/07/03 09:39:08
ライオンズ コメンタリーとかね。

350:デフォルトの名無しさん
05/07/03 11:13:36
そんな具体的なのは早いってw

351:デフォルトの名無しさん
05/07/03 13:34:46
XtAppAddInputを使用してPipeのFDをReadで登録した場合、
パイプの書き込みが行われなくてもXEventが発生してしまうものなのでしょうか?
すいませんが知ってる方いらっしゃいましたら教えていただけますか。

352:デフォルトの名無しさん
05/07/03 14:05:40
>>349
詳しく
ぐぐっても西部の話しかでてこねー

353:デフォルトの名無しさん
05/07/03 14:18:53
>>352
URLリンク(www.ascii.co.jp)

354:デフォルトの名無しさん
05/07/03 14:32:10
>>353
ありがとう~英語の本だったか

355:デフォルトの名無しさん
05/07/03 14:36:37
ええ?翻訳のはずだけどw

356:デフォルトの名無しさん
05/07/03 15:19:29
すいません、質問なのですが。
環境変数を獲得するプログラムなんですけれども、

#include <stdio.h>

main(int argc, char *argv[], char *envp[])のソースを
{
int i;

for(i = 0; envp[i]; i++);
printf("%s\n",envp[i]);

exit(0);
}

実行ファイルを実行すると、NULLが返ってきました。

設定されている環境変数の一覧を表示させたいですが。



何も設定されていないという意味でしょうか?



357:デフォルトの名無しさん
05/07/03 15:31:13
>>356
そんな具体的なのは早いってw

358:デフォルトの名無しさん
05/07/03 15:33:01
>>356
for のお尻のセミコロンはいらんだろ。
あとスレ違いだと思う。

359:デフォルトの名無しさん
05/07/03 15:34:43
>>356
間違い: フォーーーーーッ;
正解: フォーーーーーッ{}

360:デフォルトの名無しさん
05/07/03 15:39:10
いや、それ一緒だからw

361:デフォルトの名無しさん
05/07/03 15:41:53
>>360
フォーーー・・・

362:356
05/07/03 16:00:06
>>356=357
ちょっと、自演してみましたw


363:デフォルトの名無しさん
05/07/03 16:01:40
>>362
フォーー!!

364:よちお
05/07/03 16:20:06
マジスカポリス?

365:デフォルトの名無しさん
05/07/03 21:10:34
>>356
env のソース見りゃいいじゃん

366:デフォルトの名無しさん
05/07/03 21:14:34
>>365
だからそんなんしなくってもいいって言ってんだろフゥーーーーーッ!
for(); っていうありがちなミスなだけですよ

367:デフォルトの名無しさん
05/07/03 22:15:23
ありがちなのか。私にゃありえないミスに見えたが。

368:デフォルトの名無しさん
05/07/03 22:25:07
>>367
だから初心者にありがちなミスって言ってんだろフゥーーーーッ!
>>365が見逃したとしても仕方ありませんよ

369:デフォルトの名無しさん
05/07/04 05:50:45
topコマンドのように、表示を更新しつつ、改行して進んでいかない方法を探しています。
1行の場合\rを出力してやれば、その行の1列目まで戻ってそこから出力できることがわかったのですが、
逆改行のやり方がわかりません。教えていただけないでしょうか?

370:デフォルトの名無しさん
05/07/04 06:32:28
$ man curses
$ tput cuu1
$ man 5 terminfo

BSDならtermcapを。

371:デフォルトの名無しさん
05/07/04 07:09:03
thx

372:デフォルトの名無しさん
05/07/04 14:33:52
ソースを読んでいたら
setlocale(LC_CTYPE, "");
と言うのがあったのですが、
具体的にこれはどのようなときどのようなことに役に立つのでしょうか?

373:デフォルトの名無しさん
05/07/04 14:59:51
>>372
man setlocale した上で質問しているんだろうな?

374:デフォルトの名無しさん
05/07/04 15:04:48
うん

375:デフォルトの名無しさん
05/07/04 16:54:36
getenv(3)してみるのが面倒な時。

376:デフォルトの名無しさん
05/07/04 21:15:32
おれもわからん
なんでコード上で setlocale(LC_CTYPE, ""); する必要があるの?
使ってるコード見てみてもなにがなんだかわからんや
暇な人説明プリーズ

377:デフォルトの名無しさん
05/07/04 21:26:13
setlocale()呼ばないと、デフォルトでは"C"ロケールになる
setlocale(LC_CTYPE, "");を呼ぶと、文字種別に関するロケールが
現在の実行環境設定に従って設定される。

ロケール依存の関数(mbstowcs()など)を呼ぶ場合には、
setlocale()を呼んでおいた方がいい。

つかmanぐらい嫁

378:デフォルトの名無しさん
05/07/04 21:27:29
ちんこたってきたんだけどどうしよう

379:デフォルトの名無しさん
05/07/04 21:31:03
英語のマニュアルなんて読む気がおきねぇ
catのマニュアルよんで理解するのにも30分くらいかかる俺だぞ
gccは長さを見ただけでやめたよ

そんな俺だけど感謝してる
本当にありがとう、なんとなくくわかった気がするよ

380:デフォルトの名無しさん
05/07/04 21:49:07
>>3くらい読め。
man on www
URLリンク(www.linux.or.jp)
URLリンク(www.linux.or.jp)

381:デフォルトの名無しさん
05/07/04 21:58:48
日本語訳読んだら負けだと思ってる


382:デフォルトの名無しさん
05/07/04 22:00:40
オリジナル読む>翻訳読む>>>>>>>>>>>>>読まない

383:デフォルトの名無しさん
05/07/04 22:04:52
誤訳とかは置いといて
たまに日本語訳マニュアルを読むと何世代まえのやねん
っておもうことがあるね

384:デフォルトの名無しさん
05/07/04 22:04:54
コマンドのマニュアルはそれだけ読んでもわけわかんねーことは
確かに多いが、ライブラリ関数やシステムコールのマニュアルぐらいは
有用だから読んどけよ。

385:デフォルトの名無しさん
05/07/04 22:47:23
>>383
あなたも翻訳に参加して下さい

386:デフォルトの名無しさん
05/07/07 09:13:18
経過時間を計測したいのですが、プロセッサ時間依存の方法ですと、マルチスレッドのプログラムの  
経過時間がうまく計測できません。clock()以外で、ミリ秒まで取得する方法を教えてください。

387:デフォルトの名無しさん
05/07/07 09:24:09
頭使えよばか

388:デフォルトの名無しさん
05/07/07 10:53:50
>>386
マルチすなや。
移動しているつもりなら、きちんと挨拶してからにしろ。

389:デフォルトの名無しさん
05/07/07 12:56:03
(・∀・)コンニチハ

390:デフォルトの名無しさん
05/07/07 14:29:37
(・∀・)コンニチハ
経過時間を計測したいのですが、プロセッサ時間依存の方法ですと、マルチスレッドのプログラムの   
経過時間がうまく計測できません。clock()以外で、ミリ秒まで取得する方法を教えてください。 


391:デフォルトの名無しさん
05/07/07 14:41:54
同じスレにマルチとはなかなかやるな

392:390
05/07/07 15:07:17
>>391
マルチマルチとうるさいんだこのクズ
質問に答えられないんならROMってろ

393:デフォルトの名無しさん
05/07/07 15:10:32
あいさつしてから、って点が違うみたいだよ。>>391

394:デフォルトの名無しさん
05/07/07 15:12:50
さすがマルチスレッド


395:デフォルトの名無しさん
05/07/07 15:13:11
アホかい。

396:デフォルトの名無しさん
05/07/07 17:35:50
gettimeofdayの何が不満なのか。

397:デフォルトの名無しさん
05/07/07 20:18:35
スレッドの実装が何かも言わないで答えられるかよ

398:デフォルトの名無しさん
05/07/07 20:41:07
>>397
うはwwwテラキモスwwwwww

399:デフォルトの名無しさん
05/07/08 00:07:15
>>386の文章の意味が分かる奴はいるのか?


400:デフォルトの名無しさん
05/07/08 00:20:05
Xlib回りのことなのですが
Window型はどのような型なのでしょうか?
googleで検索しようにもwindowがキーワードなため検索できません

401:デフォルトの名無しさん
05/07/08 00:24:51
xlibとwindowで検索すりゃいいじゃん

402:デフォルトの名無しさん
05/07/08 00:27:22
>>401
それだと引っかかり過ぎです

ヘッダファイル読んだら早かったですね
すいませんお手数をお掛けしました

403:デフォルトの名無しさん
05/07/08 00:51:36
>>402
じゃぁもう判ったろうけど只のIDね。

404:402
05/07/08 02:20:09
はい、すいませんありがとうございます
単に、unsigned intでした


405:デフォルトの名無しさん
05/07/08 02:43:22
XmbDrawImageString
で表示する文字列の幅を計算することはできますか?
プロポーショナルのモナーフォントを使うので文字数x8等では大きさがあいませんでした

406:デフォルトの名無しさん
05/07/08 02:59:43
XmbTextExtents

407:デフォルトの名無しさん
05/07/08 16:44:48
ヘッダファイルを見てみたのですが
知能がたりないためか理解できませんでした

XFontSet型はどのようなかたなんですかね?

408:407
05/07/08 18:17:01
どう検索してもでない・・・
構造体なのかな・・・

409:デフォルトの名無しさん
05/07/08 20:14:50
わたしも似たような質問をさせていただきます
よくコードを書いていたら、関数や型などいろいろなものがあたらしくでてくるのですが
それらを検索しても詳しい説明が引っかからないことが結構よくあります
man hoge とやっても、マニュアルがあるのは希です
私も直接ヘッダファイルを読もうと思うのですが
% grep hoge /usr/X11/include/X11/*
等とし、引っかかったファイルの中を見るのですが全然わかりません
今は、extents->max_ink_extent.height と言うものを調べているのですが
よくわかりません

ヘッダファイルを読むにはコツなどあるのでしょうか?


410:デフォルトの名無しさん
05/07/08 20:28:37
>>409
単に
grep hoge
などとして名前で検索したら大量にひっかかるのは当たり前だ。

まずは正規表現を学べ。
そして、探したいシンボルがどのように宣言されているか想像し、
それに応じた正規表現を用いて、
grep 'typedef.*hoge'
などとして検索することだ。



411:デフォルトの名無しさん
05/07/08 20:57:50
統合開発環境使えよ・・・
これだから化石みたいなUNIX使いは

412:デフォルトの名無しさん
05/07/08 21:00:01
>>411
「使える統合開発環境」があったら使ってるっつーの

413:デフォルトの名無しさん
05/07/08 21:07:19
tags使うとか……
それはそうと、emacsって統合開発環境っぽいけど。

414:デフォルトの名無しさん
05/07/08 21:21:56
つーか Xlib はヘッダだけ読んでもわからんよ。
参考書入手したほうがいい。

415:デフォルトの名無しさん
05/07/08 21:35:05
>>414
そこで、もまいの使ってるよい参考書を
お姉さんにこっそりおしえなさい

416:409
05/07/08 22:30:37
みなさまありがとうございました
ファイル内で検索は正規表現を使ってやっています
ですが、なかなか私の知識が足りないせいかむづかしくて…

>>414
どのような参考書がありますかね?
X Windowsで遊ぶ本 っていうのを買ってそれからプログラミングを始めたのですが
ぜんぜんその本には関数の説明が載ってなくてきっかけ本みたいなかんじです
X Window プログラミングっていう本があるらしいのですがアマゾンでも取扱い無しになってて…
ほかになにかあったら教えていただきたいです

417:デフォルトの名無しさん
05/07/08 22:49:48
>>416
URLリンク(xjman.dsl.gr.jp)
とりあえず、ここには目を通す。


418:デフォルトの名無しさん
05/07/08 23:11:53
>>416
> X Window プログラミングっていう本があるらしいのですがアマゾンでも取扱い無しになってて…

第二版
URLリンク(www.amazon.co.jp)
X-Windows になってるのはアマゾンのミスだな。

定番はソフトバンクから出てた Xlibプログラミング・マニュアルだけど、
高いし絶版だから上の本で充分かと。

419:デフォルトの名無しさん
05/07/08 23:33:41
Xなんてソース全部公開されてんだからそっからいくらでも調べられるじゃん


420:デフォルトの名無しさん
05/07/08 23:46:47
>>419
と理論だけで、実践のともなわない馬鹿が申しております。。。

421:デフォルトの名無しさん
05/07/08 23:49:26
時間効率の問題ってあるよなあ。
あるシンボルの定義位置を参照する、といったよくあるニーズに答える
にあたっては統合開発環境はやっぱ強いよ。
専用の開発環境だけあってctagよりは厳密で正確だし、システムヘッダまで
再帰的に勝手に探してくれるからな。




422:デフォルトの名無しさん
05/07/08 23:52:40
静的な解析ツールを使う
という選択肢がなぜないのか

423:デフォルトの名無しさん
05/07/08 23:53:49
道具を使いこなせるかどうかの話だけだと思うが。
findとgrepとxargsがあればかなりのことができる。

424:デフォルトの名無しさん
05/07/08 23:57:50
>>423
だから、時間効率の問題

それにfind(1), grep(1), xargs(1)はCのシンタクスを知らないし
行指向の作業しかできない

425:デフォルトの名無しさん
05/07/09 00:11:46
IDE はリソース喰いだから好きじゃない
最近 cvsweb みたいなのが便利に思えてきた

426:デフォルトの名無しさん
05/07/09 00:11:53
globalとか。


427:デフォルトの名無しさん
05/07/09 00:17:35
>>419
つーかお前はXのソースを読んだことがあるのか?

428:デフォルトの名無しさん
05/07/09 00:18:26
>>425
リソース喰いつってもモノによるでしょ
同じIDEでも、たとえばVC++6.0とVS.NET 2003では全然違う

クロスリファレンス機能、補完機能つきのエディタ
(これはviやemacsより良いかといえば疑問はあるが)、
ソース見ながら実行できるGUIデバッガ
(ものによってはエディットコンティニュー可能)
GUIリソースエディタ
オンラインヘルプとの連携

こういったものが手に入るのだから、開発効率は比べ物にならん

429:デフォルトの名無しさん
05/07/09 00:28:50
>>428
そういったものが手に入って効率化する工程は、
ソフトウェア生産全工程の何%なのか?

430:デフォルトの名無しさん
05/07/09 00:32:47
>>429
まあ、設計段階以外の全てじゃないか?
テスト工程でもコードの修正は発生するからな

eclipseのようなものはリファクタリングやUnitTestとの連携機能も
持っているしな

431:デフォルトの名無しさん
05/07/09 00:35:53
>>428
>同じIDEでも、たとえばVC++6.0とVS.NET 2003では全然違う

UNIX べったりなんで、そういうの使った事無いんだ
触った事ある IDE は Eclipse とか Xcode とか

IDE で重装備するよりも、REPL が充実してる環境の
方がヘルシーだと思う。

432:デフォルトの名無しさん
05/07/09 00:42:51
ツールボックスアプローチの中にいる人間に
キッチンシンクアプローチをとったツールの良さを説くのはなかなか難しかろう

433:デフォルトの名無しさん
05/07/09 00:43:17
>>431
たとえMicrosoftのVisual Studioであっても、別にIDE漬けを強制される
ワケじゃないよ。

最近のVisual Studioには残念ながらメイクファイルを生成する機能は
無くなったようだが、依然として自分で書くことはできるし、
make(1)相当のnmake.exeもついている。無論、cc(1)を直接実行すれば
いい程度の仕事なら、cl.exeを実行すればよい。実際ちょっとした
プログラムを作って試す、といった程度なら、いちいちIDEを起動する
よりはこっちが速い。

434:デフォルトの名無しさん
05/07/09 00:43:44
>>432
emacsユーザなら結構いると思うんだけどね。

435:デフォルトの名無しさん
05/07/09 01:15:47
ツールボックスを使いこなせずにレガシーな環境に固執して
1人だけ効率落としてる奴の方が迷惑なわけだが
あっここには趣味プログラマしかいないからいいのか

436:デフォルトの名無しさん
05/07/09 01:21:38
俺はツールボックスの方が好きだけど、今はツールボックスこそがレガシーな環境なんじゃないの
翻って、今風な環境って奴は進む道を間違えてるとは思うけどね

437:デフォルトの名無しさん
05/07/09 01:22:41
> ツールボックスを使いこなせずにレガシーな環境に固執して

ツールボックスよりレガシーって、メインフレームの環境とかか
ごめん、俺少しだけ流れないJCL流す苦労に涙したことあるけど
ほとんど知らないわ(w

438:デフォルトの名無しさん
05/07/09 01:32:11
多分 >>435 はツールボックスという用語を知らなかったんだろうね

439:409
05/07/09 01:32:12
>>418
ありがとうございます
それを買ってみます



440:デフォルトの名無しさん
05/07/09 01:38:56
俺はもともとWindowsでVC++使ってコード書いてたけど
UNIXを使いはじめてからは、WindowsでもEmacs(Meadow)でコード書くようになったよ
はじめはGNU/Linuxを使ってて、KDevelopとか使ってやってたけど
わずらわしくなって、テキストエディタで書きはじめたらこりゃ便利
Emacsとか使うとコード書くのも楽にカスタマイズできるから書くスピードも早いし
VC++のIDE使ってると、一々マウスで操作してやる操作を探さなきゃいけないけど
(まぁ、ショートカットに入れたりしたらいいだけだが)
テキストエディタとコンソールだと、screenとかつかうと切替えも早いし
俺にはこっちのほうが便利だし速い

441:デフォルトの名無しさん
05/07/09 01:44:57
Emacsの立ち位置はびみょうだな

Toolbox ----- Emacs ----- IDE

ってカンジ?
まあ、道具はケースバイケース・適材適所で使える人が最強ですよ、と
言っておく。

442:デフォルトの名無しさん
05/07/09 01:49:36
蟹飯がIDE嫌いらしく、printfデバグを推奨してたのは萎えたな
老害という言葉を思い出したよ


443:デフォルトの名無しさん
05/07/09 01:53:00
Toolbox (UNIX/Shell) ----- Kitchen Sink (Emacs ----- IDE ----- Smalltalk)

444:デフォルトの名無しさん
05/07/09 01:54:58
とはいえ、蟹飯>>442なんだけどね。


445:デフォルトの名無しさん
05/07/09 01:55:41
>>444
まあ尊敬はしとるよ。

446:デフォルトの名無しさん
05/07/09 01:56:23
漢ならgdbである

447:デフォルトの名無しさん
05/07/09 01:57:00
>>443
N88BASICとかもKitchen Sinkなのかなあ

448:デフォルトの名無しさん
05/07/09 01:57:20
>>446
え?adbとかじゃなくて?

449:デフォルトの名無しさん
05/07/09 02:01:29
俺は焼き畑も printf() も良く使うな
根っからのレガシーだから

450:デフォルトの名無しさん
05/07/09 02:19:06
道具なんて自分に合ったもん使えばいい。
他人の道具にいちいち文句言うのが間違い。

作業が遅いのが気にくわんならば「遅い」とだけ文句言え。


451:デフォルトの名無しさん
05/07/09 02:24:13
>>450
新人相手なら教育すべきだろうし
ペアプロとかしてると、突っ込みたくなるんじゃないかな

ほら、viでなんか非効率なことやってるの見て、「こうやるんだYO!!」
みたいな
でも、最近はそういう「職場の先輩」って少なくなってる気がするね

452:デフォルトの名無しさん
05/07/09 02:31:51
よく思うのが 構造体や関数の定義位置を探す方法に乏しいこと
ヘッダをgrepして定義位置を探すとかって原始的だよね?
効率のいい方法があれば とっておきのスク水猫耳を

453:デフォルトの名無しさん
05/07/09 02:33:19
>>450
> 作業が遅いのが気にくわんならば「遅い」とだけ文句言え。

頼むからチームでプログラミングするところには参加しないでね

454:デフォルトの名無しさん
05/07/09 03:03:50
>>452
grep でも C/P は十分だと思うけど、
↓みたいに web 化するとか

URLリンク(lxr.linux.no)

455:デフォルトの名無しさん
05/07/09 03:09:14
>>451
非効率の例で vi を挙げないでくれ...

456:デフォルトの名無しさん
05/07/09 03:12:07
>>455
edとかのがよかった?(w

457:デフォルトの名無しさん
05/07/09 03:13:38
>>454
IDEは、IDE自体のデキにもよるけど、class/structの宣言変えたりすると
すぐ追従してくれる。
毎度毎度
make ctags
とかそんなようなコマンドをタイプしてしばらくバッチ処理を待たないと
いけない世界とはえらい違いなワケですが。

458:デフォルトの名無しさん
05/07/09 03:14:26
>>456
効率悪ぃのは得物の所為じゃねぃ

459:デフォルトの名無しさん
05/07/09 03:16:31
>>457
頻繁に書き換える所なら脳キャッシュに載ってるんじゃないかね

460:デフォルトの名無しさん
05/07/09 03:17:02
>>458
いや、こう言っちゃなんだけど俺はvi好きよ。
今、純正のvi触る機会は無いけれど。

>>451は別にviをコケにしてるんじゃなくて、
習熟度によってえらく使い方が替わってしまうviというエディタを
使いこなせていない新人君の操作にイライラしてしまう、
というよくある光景を描いたつもりなんだ

461:デフォルトの名無しさん
05/07/09 03:17:43
>>459
いやさ、脳キャッシュとか脳スタックとか容量に限界あるから
割り込みもよく入るし(w

462:デフォルトの名無しさん
05/07/09 03:20:48
>>460
そうか、スマソ。
最近、vi 使ってるだけで後輩から老害認定されてる人を見たもんで。
Java だったから IDE 使った方が良いんだろうけど、ちょっと悲しかった。

463:デフォルトの名無しさん
05/07/09 03:27:12
Javaは言語がクソだから環境を整えないとマトモに使えないんだよな。

464:デフォルトの名無しさん
05/07/09 03:31:20
俺、vi使ってJavaでコーディングしてたら、JBuilderユーザの同僚に
「速いねー」<(タイプが)
とか誉められたことがあるな

あれは嫌味か何かだったんだろうか

ま、Javaみたいに完全にクラス指向の言語だと、エディタの補完機能の
有効性がデカい、というのはある。Cとかに比べると

465:デフォルトの名無しさん
05/07/09 03:41:56
>>457
ctagsってなに?
便利そうなんだけど
尻尾もつけるから

466:デフォルトの名無しさん
05/07/09 03:44:27
>>465
ctags(1)

つか、おまいは本当にUNIXプログラマなのか

467:デフォルトの名無しさん
05/07/09 03:47:55
>>463
そんなJavaをデザインしたBill Joyには足を向けて寝られない>>463


468:デフォルトの名無しさん
05/07/09 04:07:08
>>466
JMに載ってないコマンドはいまいち知らんのよ
とりあえずこれを使えばincludeされる予定のヘッダを
全部読んでタグ作ってくれるのね。
SASSOKU試してみる

469:デフォルトの名無しさん
05/07/09 08:13:45
>>468
GNU Globalのほうが便利よ


470:デフォルトの名無しさん
05/07/09 09:00:17
viで、カーソル移動を矢印キー押しっぱなしでやってるの見ると一言言いたくなるよね。
で、聞いてみたら検索(/)コマンドも単語移動(wなど)も、ex系のコマンド(sなど)も知らなかったりしてもうね……

471:デフォルトの名無しさん
05/07/09 10:06:34
viなんて非常時以外使わんだろ
得意げにviの使い方を語る奴見ると引く

472:デフォルトの名無しさん
05/07/09 10:14:35
いや、そんな当たり前のことで得意になったりしませんから。
#まさか、sed使えるからって得意になる奴もいまい。それと同じことだ。

473:デフォルトの名無しさん
05/07/09 10:19:39
vi はカーソル移動=検索なんだよね(ほぼ)
その辺りの感触がわからないとゴミにしか見えないだろう。

474:デフォルトの名無しさん
05/07/09 10:24:04
#カーソル移動はfだが

475:デフォルトの名無しさん
05/07/09 10:29:32
あぁ・・・

476:デフォルトの名無しさん
05/07/09 11:05:22
Xlib スレがあるのにそっちを勧める奴はおらんのか。
こっちだ。
スレリンク(tech板)l50

477:デフォルトの名無しさん
05/07/09 12:39:11
Xlibなんて過去の遺物だし

478:デフォルトの名無しさん
05/07/09 12:53:35
それは libc なんて過去の遺物だしって言うのと変わらんよ。

479:デフォルトの名無しさん
05/07/09 14:38:12
>>471
viしか使えなくてすまん


480:デフォルトの名無しさん
05/07/09 15:36:30
libcなんてダサすぎる。
時代はglibc。

481:デフォルトの名無しさん
05/07/09 15:44:01
glibc? 時代はlibstdc++。

482:デフォルトの名無しさん
05/07/09 15:46:42
たしかにオマエラには2ちゃんがお似合いだw

483:djb信者
05/07/09 15:56:01
時代は、diet-libc

484:デフォルトの名無しさん
05/07/09 18:00:57
>>471
非常時に使うのって、edじゃないか?

485:デフォルトの名無しさん
05/07/09 18:03:23
>>484
え?非常時は boot cdrom で、dtpad 使うけど?

486:デフォルトの名無しさん
05/07/09 18:42:03
時代は変わったちうことですね

487:デフォルトの名無しさん
05/07/09 19:04:12
非常時でもディスプレイが映ると思うなよ

488:デフォルトの名無しさん
05/07/09 19:11:28
>>487
シリアルポートは生きてるかも知れないけどな

489:デフォルトの名無しさん
05/07/09 19:29:12
非常時は巫女/ぐにょ Linux で Emacs

490:デフォルトの名無しさん
05/07/09 20:20:51
非常時にCDブートなんかしてたら漏らしちゃうよ。

491:デフォルトの名無しさん
05/07/09 21:36:13
じゃUSBブートでおながいします。


492:デフォルトの名無しさん
05/07/10 01:32:30
晒しあげてやる。

493:デフォルトの名無しさん
05/07/10 01:46:43
Xlibを使ったコードを書いていて実行してみたら
XCreateFontSetのところで以下の様なエラーが出ました
これはどのような意味なのでしょうか?


X Error of failed request: BadValue (integer parameter out of range for operation)
Major opcode of failed request: 1 (X_CreateWindow)
Value in failed request: 0x0
Serial number of failed request: 7
Current serial number in output stream: 13

494:デフォルトの名無しさん
05/07/10 01:51:11
>>493
X_CreateWindow()のパラメータがあってなくてBadValueエラーがでたんだろ。
そのXCreateFontSet()の呼び出しをコメントにして同じエラーがでるなら
それ以前に呼んでる関数を疑え。

495:デフォルトの名無しさん
05/07/10 02:20:34
あるいはデバッグ時には、main()の先頭かあるいは
デバッガを使って実行前に
_Xdebug = 1;
をしておくという手もある。(遅くなるが)
こうすると、毎回XSync()するのと同じ効果があるので、
パラメータ間違いがあった場合すぐにエラーが起きる。
これって昔は常識だったけど、今は lost technology
に近い?


496:デフォルトの名無しさん
05/07/10 02:24:56
そもそも生の Xlib 自体が lost technology に近い

497:デフォルトの名無しさん
05/07/10 03:16:21
今更X Windowを何かのシステムのインタフェースに
使おうという発想がlost ideaだ

498:デフォルトの名無しさん
05/07/10 10:20:30
>>400は本当に生のXlibでいいのか?
Motif, gtkとかフレームワークもいろいろあるが…
URLリンク(www.free-soft.org)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch