[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 05/09 12:29 / Filesize : 215 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


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

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



1 名前:名無し募集中。。。 [05/01/15 02:18:37]
UNIXおよびUNIX clone環境一般のプログラミングに関する質問スレッド

前スレ
Part4 pc5.2ch.net/test/read.cgi/tech/1095843584/
Part3 pc5.2ch.net/test/read.cgi/tech/1085930894/
Part2 pc5.2ch.net/test/read.cgi/tech/1055110889/
Part1 pc2.2ch.net/tech/kako/992/992057422.html

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

関連スレ
Cygwin使っている人いますか? その13 (UNIX板)
pc5.2ch.net/test/read.cgi/unix/1099157755/
Cygwin使っている人いますか? 3 (Windows板)
pc5.2ch.net/test/read.cgi/win/1090131123/

関連板
pc5.2ch.net/unix/
pc5.2ch.net/linux/


51 名前:デフォルトの名無しさん [05/02/08 22:40:00 ]
pthread使ってるからpopen()とか使うな、っつってるのに使いやがったアホ(上司と同義)のために、
「こう書き換えろう゛ぉけっ!」とアドバイスしたいのですが、どういう書き換え方があるでしょうか?

52 名前:デフォルトの名無しさん mailto:sage [05/02/08 22:45:01 ]
上司を部下に書き換えるとか、勤務先を書き換えるとか

53 名前:デフォルトの名無しさん [05/02/08 22:50:45 ]
マジレス希望です。

54 名前:デフォルトの名無しさん mailto:sage [05/02/09 00:02:05 ]
私は popen 使うならシェルからパイプ使えと思う人です

55 名前:デフォルトの名無しさん [05/02/09 01:06:27 ]
プロセスを走らせながらDLLって書き換えられますでしょうか。。。
dlopen()等でそういった書き換えが考慮されていないプロセスです。

56 名前:デフォルトの名無しさん mailto:sage [05/02/09 09:06:47 ]
書き換えるのはできないけど、入れ換えるのはできるぞ。
cp libhoge.so /usr/lib/libhoge.so.tmp
mv /usr/lib/libhoge.so.tmp /usr/lib/libhoge.so

57 名前:デフォルトの名無しさん mailto:sage [05/02/09 12:19:18 ]
入れ替えられても元のdllはロードされたままの罠。

58 名前:デフォルトの名無しさん mailto:sage [05/02/09 12:25:32 ]
無理やりmunmapしてしまうとか。

59 名前:デフォルトの名無しさん mailto:sage [05/02/09 15:02:15 ]
dllゆーな。




60 名前:デフォルトの名無しさん mailto:sage [05/02/09 20:21:36 ]
dllって言う奴はWin上がり

61 名前:デフォルトの名無しさん mailto:sage [05/02/09 21:54:41 ]
UNIXerはなんて言うの?

62 名前:デフォルトの名無しさん mailto:sage [05/02/09 21:56:50 ]
そ。

63 名前:デフォルトの名無しさん mailto:sage [05/02/09 21:58:00 ]
さ。

64 名前:デフォルトの名無しさん mailto:sage [05/02/09 22:37:10 ]
どるる。

65 名前:デフォルトの名無しさん mailto:sage [05/02/09 23:39:12 ]
どるるゆーな。

66 名前:デフォルトの名無しさん [05/02/10 00:03:50 ]
>>56
やっぱ無理ですか。どうもでした。
ちなみにdllってWin用語ですか!?たまたま拡張子がDLLなだけでしょ。

67 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:15:11 ]
そ。

68 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:28:17 ]
>>66
なこといっても、dymamic loadable libararyとは言わないもん。
shared libraryだな。

69 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:35:06 ]
同じというならWindowsのDLL作るのってなんであんなに面倒くさいかね。






70 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:38:03 ]
誰が同じって言ったんだろう

71 名前:デフォルトの名無しさん mailto:sage [05/02/10 00:55:21 ]
どるるワラタ

>>68
確か dynamic link library の略だったような。
なぜか soopen() じゃなくて dlopen() だなあ。

72 名前:デフォルトの名無しさん mailto:sage [05/02/10 14:18:26 ]
>>71
shareされるかどうかの観点 -> so
dynamicにロードされるかどうかの観点 -> dl(l)

73 名前:デフォルトの名無しさん [05/02/10 17:04:50 ]
>>72
惜しい

74 名前:デフォルトの名無しさん mailto:sage [05/02/10 17:12:06 ]
>>49
W=リチャード(故)の「UNIXネットワークプログラミング」8000円に
XTIのページが100ページぐらいあって
泣きたくなった

まじでいらん。金その分返せと


75 名前:デフォルトの名無しさん mailto:sage [05/02/10 17:34:03 ]
>>71
dlopenはもともと別のAPIですから。

76 名前:デフォルトの名無しさん [05/02/11 21:26:59 ]
perrorを呼んだ後はerrnoの値って変わっちゃうの?
printfは何度呼んでも変わらないようだけど。

int main(void)
{
 errno = ETIMEDOUT;
 printf("errno: %d \n", errno);
 perror("perror");
 printf("errno: %d \n", errno);
 return 0;
}

errno: 2
perror: No such file or directory
errno: 29

77 名前:デフォルトの名無しさん mailto:sage [05/02/11 21:33:20 ]
そういうもんです

78 名前:デフォルトの名無しさん [05/02/11 23:16:43 ]
FreeBSDでは変わらんけど。
29ってなんだ?


79 名前:デフォルトの名無しさん mailto:sage [05/02/11 23:56:23 ]
変らないのはたまたま。
後で利用したければ、保存しなさい。



80 名前:デフォルトの名無しさん mailto:sage [05/02/12 00:11:46 ]
>>76
perrorが標準エラーに出力するってことは、最終的にwrite(2)が
呼ばれるわけだから、どのみちerrnoが上書きされる可能性がある。

もし、errnoを保存してたとすると、write(2)が失敗した場合のerrnoを
取得できなくなってしまう(可能性も必要性も低いけど)。

こう考えれば納得できるんじゃないかな?

81 名前:76 mailto:sage [05/02/12 00:38:18 ]
>>80
なるほどわかりますた…
あと>>76のETIMEDOUT→ENOENTですた、スマソ
まぁ何でもいいんですが。

82 名前:デフォルトの名無しさん [05/02/12 21:15:07 ]
>>51
popen()はスレッドセーフだよな?何故使ったらダメなんだ?


83 名前:デフォルトの名無しさん [05/02/12 21:25:23 ]
pthreadの動作を実際に見せてやれ。
おまいはできる部下だ

84 名前:デフォルトの名無しさん [05/02/12 21:27:20 ]
>74
本買う前に目録ぐらい見なよ

85 名前:デフォルトの名無しさん [05/02/12 22:31:57 ]
>>84
ビニールの帯でくくってあってさぁ・・・

86 名前:デフォルトの名無しさん mailto:sage [05/02/12 22:34:47 ]
>85
何のために常時接続してんだか…

87 名前:デフォルトの名無しさん [05/02/17 02:45:26 ]
コマンドを実行してそれを返り値にして渡したいのですが
どのような方法があるでしょうか?

具体的には ls -1 *.jpg の結果が欲しいのです
すいませんがよろしくおねがいします

88 名前:デフォルトの名無しさん [05/02/17 02:52:40 ]
「返り値にして渡したい」の意味が正確には把握できませんが、

  return system("ls -1 *.jpg");

ってことですか? それとも、

  FILE *f = popen("ls -1 *.jpg", "r");
// fから読む

ってことでしょうか?

89 名前:デフォルトの名無しさん mailto:sage [05/02/17 04:16:35 ]
呼び側で、引数それぞれにつき、BUFSIZぶん確保。
返り値は、エラーの有無。

おもしろかった。

int hoge(char *cmd, char *b)
{
    FILE *fp;
    int ret;

    cmd[strlen(cmd) - 1] = '\0'; /* 改行がくっついてる、と、仮定 */
    printf("cmd: %s\n", cmd);
    if ((fp = (popen(cmd, "r"))) == NULL) {
        perror("popen");
        return (1);
    }
    if ((ret = fread(b, 1, BUFSIZ, fp)) < 1) {
        printf("no output from \"%s\"\n", cmd);
    } else if (ret < 0) {
        perror("fread");
        pclose(fp);
        return (1);
    }
    pclose(fp);
    return (0);
}




90 名前:デフォルトの名無しさん mailto:sage [05/02/17 04:42:42 ]
??ちょとまずかった??

    if ((ret = (fread(b, 1, BUFSIZ, fp))) < 1) {
        fprintf(stderr, "no output from \"%s\"\n", cmd);
        if (ferror(fp)) {
            perror("fread");
            pclose(fp);
            return (1);
        }
    }

...すみません。もうやめます。

91 名前:デフォルトの名無しさん mailto:sage [05/02/17 06:11:03 ]
どうしてUNIX厨のソースはこんな醜いんだろう

92 名前:デフォルトの名無しさん [05/02/17 07:40:22 ]
それがUNIXクオリティ

93 名前:デフォルトの名無しさん [05/02/17 12:54:54 ]
>>91
それは厨だからさ。

94 名前:デフォルトの名無しさん mailto:sage [05/02/17 13:22:01 ]
>>91
お前のレベルが低いだけだろ


95 名前:デフォルトの名無しさん [05/02/17 13:56:20 ]
すみません。よろしければ教えてください。

mailxでメールを送信する際に
添付ファイルをつけて送信することは可能なのでしょうか?

どこぞやにUNIXじゃ添付できないって書いてあったんですけれども
もしできそうならおしえていただけますでしょうか?

96 名前:デフォルトの名無しさん mailto:sage [05/02/17 13:57:04 ]
帰れ

97 名前:デフォルトの名無しさん [05/02/17 13:58:42 ]
>>95
板違い

98 名前:デフォルトの名無しさん mailto:sage [05/02/17 13:59:16 ]
あらら、答えられないなら黙ってればいいのにw
UNIX厨っていつも余計な事するよね

99 名前:95 [05/02/17 14:04:38 ]
もうしわけないです、どこの質問すればいいですか?
誘導願いしますw

UNIXの環境上からmailxで添付ファイルの送り方
があればききたいのですけれども






100 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:05:32 ]
なんでマニュアル読まないの?

101 名前:デフォルトの名無しさん [05/02/17 14:06:43 ]
マジレスすると
$ man mailx

102 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:08:06 ]
$ man ko

103 名前:95 [05/02/17 14:08:38 ]
manなんてインストールしてません
おねがいします
教えてください

104 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:10:09 ]
マニュアル熟読しないと使えない時点で糞だよね
UNIXなんて捨てたら?

105 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:11:45 ]
man入れてないんだったらオンラインマニュアルでもなんでもあるだろが
考えろよ

106 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:13:13 ]
つーかおまえがmanなんて見ても参考にならねーと思う
あきらめろ

107 名前:95 mailto:sage [05/02/17 14:14:06 ]
ばーか

108 名前:デフォルトの名無しさん [05/02/17 14:14:20 ]
ここはプログラミングのスレであって、ツールの使い方のスレではない。

109 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:15:16 ]
シグナルってシグナルハンドラからすぐにリターンしないとだめ?
そのまま延々と処理を続けてもいい?




110 名前:95 mailto:sage [05/02/17 14:15:25 ]
なんだかんだと言い訳ばっかでつかえねーやつら。
氏んだらいいと思うよ。

111 名前:104 mailto:sage [05/02/17 14:15:27 ]
はいはいそうですね
そのとうりです
だからもうUNIXと言う文字があるところにはかかわらなくていいですよ
じゃぁね ばいばい

112 名前:デフォルトの名無しさん [05/02/17 14:16:37 ]
いやでも、
UNIXで挫折って、わかる気がするなあ。
ずっと意味不明なコマンドの文字列打ってたら頭おかしくなりそうだし、
ずっと真っ暗なコンソール眺めてると鬱になりそうじゃん?
かといって思想のまるでないXは、オタ絵とただ沢山コンソール開くしか脳ないし、
こんなの与えても娯楽を常に要求する一般人は見向きもしない。
そもそもWebでしか見掛けない、哀れなOS、というのが一般人の見解だし。
そうそう、最近LindowsがUNIXの印象かなり悪くしたよね。
この事件でUNIXはビジネスで成功できないことがまた証明されてしまったわけだ。
昔からUNIXは関係者同士で常に足を引っ張って成長しない。
お金の匂いしないよね。全然。
そんなOSだから、挫折が常態であるのは必然なんだと思う。

113 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:18:01 ]
>>109
いいよ
Xのメセージは全部シグナルだし

114 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:25:17 ]

元95です。偽者発生してもうきけるふんいきじゃないですね。残念です。

man 英語だったんでうーんって感じだったんですけど
あとSHELLからコマンドで毎日定時に送るようにしたかったんですけど、

まあがんばって訳してみます。

結果あらしてすみませんw

115 名前:デフォルトの名無しさん [05/02/17 14:33:24 ]
ここは役立たずの巣窟

116 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:36:52 ]
95は何を使ってるんだ?
話はそれからだ

117 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:45:51 ]
オソル オソル キイテミル
現在実行中のプロセスが「自分自身」の絶対パスを知る方法ってありますか?
適当な path がとおってる環境下で、$ hoge <arguments...> とやったときに、
そのプログラムのなかで、hoge が /usr/bin/hoge なのか /usr/local/bin/hoge
なのかを知る方法でつ。
argv[0] を拾っても、上記の例だと hoge が得られるだけだし・・・

118 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:53:28 ]
>>117
Linux なら自身のpidを取得して/proc/pid/exe辺りを見ればいいんだけど。
man 5 proc で説明でると思う。他のOSの場合どうするのかは知らん。

119 名前:デフォルトの名無しさん mailto:sage [05/02/17 14:55:34 ]
>>117
普通に考えると、ない。



120 名前:114 mailto:sage [05/02/17 15:40:39 ]
SunのSolaris 8です

これでこたえなってます?

121 名前:デフォルトの名無しさん mailto:sage [05/02/17 15:42:08 ]
>>118
ほんとUNIXって使えないね

122 名前:デフォルトの名無しさん mailto:sage [05/02/17 16:03:21 ]
>>114
だから、ここはプログラミング質問スレなんだから
プログラムの使い方を聞くなってば。

123 名前:デフォルトの名無しさん mailto:sage [05/02/17 16:09:39 ]
>>111
>そのとうりです
とうり?

124 名前:デフォルトの名無しさん mailto:sage [05/02/17 16:33:36 ]
>>118 ありがd 調べてみまつ。
>>119 確かに >>118 さんに教えて頂いた方法は「普通」の方法っぽくはないですね。
もっと簡単に出来そうなんだけど・・・
以下のような動作するコマンドって、珍しいものですか?
usage:
 hoge (-f <conf file>)
-f で設定ファイルが指定されればそのファイルを使うけど、オプション指定なしで起動された
場合は、hoge 自身が置かれているディレクトリ直下の conf file を使います(default)。
みたいな・・・

125 名前:デフォルトの名無しさん mailto:sage [05/02/17 17:25:45 ]
>>95 氏は自分のやりたいことが分かっていないんじゃないかな。
ここで聞くより mailx と MIME でググると少しは幸せになったのに。


126 名前:デフォルトの名無しさん mailto:sage [05/02/17 17:25:45 ]
>>117
確実に(どんな場合でも)取得する方法はない。
起動後にchroot(2)してたらパスが存在しないことすらありえるし。

127 名前:デフォルトの名無しさん mailto:sage [05/02/17 17:44:02 ]
>>124
「hoge 自身が置かれているディレクトリ直下の……」というようなことは
「しない」っていうのがUNIXでの流儀なんですよ。
デフォルトのパスは定数として埋め込むのが安全です。


128 名前:デフォルトの名無しさん mailto:sage [05/02/17 17:47:50 ]
>>124 >>127 さんの言う通りじゃ。どこぞのOSの悪い習慣は捨てなされ。

いくつか流派があるが、GNU流の設定ファイルの置き場のお作法はこうじゃ
ttp://www.sra.co.jp/wingnut/standards/standards-ja_7.html#SEC54


129 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:17:03 ]
>>128
そんなに悪いものかな?
まあ、郷に入りては郷に従え、と。



130 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:33:07 ]
そもそも1つのファイルは複数の場所に存在できるんだから、
「自身が置かれているディレクトリ」なんて特定できるわけがない。

131 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:35:51 ]
↑馬鹿?

132 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:39:31 ]
>>129
動作を既定する設定ファイルなら、利用者ごとに設定できるようにするべき。
実行モジュールと同じディレクトリに置くという悪しき習慣の弊害は、
Win95時代のソフトウェアがAdministratorでないと設定を変えられない+
利用者ごとに設定できないという形でも現れている。

また、環境に依存するような設定ファイルなら、アプリケーションに埋め込むか
システムで管理するデータベースなどに登録するのがいい。
ここでもやはり、実行モジュールと同じディレクトリに置くというメリットは殆ど無い。

133 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:41:21 ]
>>130
ああそうか、そういう問題もあるね。今まで気付かなかったよ。

134 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:55:36 ]
>>132
つーか一体いつの時代のWindowsとアプリを批判してるんだよ・・・

135 名前:デフォルトの名無しさん mailto:sage [05/02/17 18:57:37 ]
>>132
95くらいだとまだシングルユーザーだったからなぁ……
確かにそういう習慣はあったけれど今ではそれなりに改善されてるよ。
まだ昔の習慣引きずってるアプリケーション多いけどね。
普段Windowsしか使ってなかったから気付かなかったよ。参考になった。ありがとう。

136 名前:デフォルトの名無しさん mailto:sage [05/02/17 19:29:19 ]
>>126-135
サンクスです。 脳内仕様を、も一回見直してみます。


137 名前:デフォルトの名無しさん mailto:sage [05/02/17 21:09:15 ]
つーかインストール先のデータ使うなんて普通にありそうだが

138 名前:デフォルトの名無しさん mailto:sage [05/02/17 21:36:16 ]
>>137 守ってね。管理面倒になるから。
www.pathname.com/fhs/pub/fhs-2.3.html


139 名前:デフォルトの名無しさん mailto:sage [05/02/18 00:13:21 ]
自己解凍書庫とか作れないじゃん




140 名前:デフォルトの名無しさん mailto:sage [05/02/18 00:24:45 ]
>>139
そこでsharですよ

141 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:04:11 ]
つーかシェルでは自分自身取得できるってことじゃん
無茶苦茶だな

142 名前:デフォルトの名無しさん [05/02/18 01:09:34 ]
馬鹿が多いな
自己パス得られないのはUNIXの欠陥の1つだよ

こいつ(>>138)こんなリンク張れば騙される奴がいるとでも思ってんだろうなw

143 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:15:35 ]
UNIXはそういう便利関数が標準化される前に廃れちゃったからね。
POSIXにもないってのは失敗かもな。

144 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:19:47 ]
まー、それでもなんとかなってるから別にいいけどね。

145 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:21:20 ]
>>141
シェルとCで機能の同期が取れてないのはヤバイ
創作の妨げでしかない


146 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:23:14 ]
はい、これでUNIXのヤバさが1つわかりましたね

147 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:27:05 ]
ハイハイ

148 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:30:22 ]
WindowsではAPI一個呼べば済む問題が、
UNIXでは流儀やら互換性やら実現不能やらで大騒ぎ
たしかにアフォすぎる

149 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:33:30 ]
ファイルシステムのセマンティクスからして違うのに無視して騒ぐバカがいるな。




150 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:35:17 ]
ム板なんてWin厨ばっかなんだからしょうがないべ。


151 名前:デフォルトの名無しさん mailto:sage [05/02/18 01:35:57 ]
こんどは意味論で擁護か
おめでたい頭だな
UNIX板で普及スレとか立ってたけど
こんなアフォばっかじゃ永久に無理






[ 続きを読む ] / [ 携帯版 ]

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

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