UNIXプログラミング質 ..
[2ch|▼Menu]
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)

499:デフォルトの名無しさん
05/07/10 10:30:28
Qt

500:デフォルトの名無しさん
05/07/10 11:24:14
QtはGPLだから用途によってはまずいぞ。
LGPLなgtkの方がまだ安全。

501:デフォルトの名無しさん
05/07/10 11:28:11
え?Qtはライセンス料払えば非GPLでもOKやん。

502:デフォルトの名無しさん
05/07/10 11:26:37
Windowプログラミングは初めてなのですが、何か良い入門書があったら教えてください

503:デフォルトの名無しさん
05/07/10 11:29:46
金を払ってQtを使う阿呆は(ry

504:デフォルトの名無しさん
05/07/10 11:56:34
>>502
釣りでないならスレ違い。

505:デフォルトの名無しさん
05/07/10 11:57:48
マックプログラミングは初めてなのですが、何か良い入門書があったら教えてください

506:デフォルトの名無しさん
05/07/10 12:15:56
面白くないよ

507:デフォルトの名無しさん
05/07/10 12:30:47
>>504
書籍の質問はダメですか?

508:502
05/07/10 12:58:29
わかりました別スレに行きます。さようなら

509:502
05/07/10 12:58:59
わかりました別スレに行きます。さようなら

510:502
05/07/10 13:02:04
わかりました別スレに行きます。さようなら

511:502
05/07/10 13:00:12
わかりました別スレに行きます。さようなら

512:493
05/07/10 14:04:33
皆さんどうもありがとうございました
いろいろとやってみたのですがどうもうまくいきませんでした
font_fontsetに入れるところでエラーになります。
何が悪いのかは本当にけんとうもつきません

したは、簡略化したコードです
何かうたがうてんなどありますでしょうか?

int main( int argc, char **argv){
Display *disp;

disp = XOpenDisplay( NULL);
font_set( disp);
}

void font_set( Display *disp){
char **misss;
int miss_count;
char *def;

XFontSet font_fontset;

font_fontset = XCreateFontSet( disp, "-mona-gothic-medium-r-normal--16-*", &misss, &miss_count, &def);
}



513:デフォルトの名無しさん
05/07/10 16:44:19
それ実行してみたが、特にエラー出ないんだけど?

514:493
05/07/10 16:54:34
はい、わたしも上記のだけですとエラーはでないです
上記のようなコードを書く際になにか注意事項のようなものはありませんでしょうか?

515:デフォルトの名無しさん
05/07/10 16:59:04
回答不能な質問するな

516:デフォルトの名無しさん
05/07/10 17:00:43
解答できないのなら書き込むな

517:デフォルトの名無しさん
05/07/10 17:12:01
真性のアホか。
そういう時はエラーが確実に発生する簡略化したコードを貼るんだ


518:デフォルトの名無しさん
05/07/10 17:14:06
>>494-496 を 150 万回くらい読みなおすこと。

通常は Xlib の関数を呼んだからといって
その時点でサーバにリクエストが投げられるのではない
(効率のためバファリングされる)
ということを頭に入れておくこと。

>>516
馬鹿は黙っていること。

519:デフォルトの名無しさん
05/07/10 17:23:42
おまえらちんこ生えてるくせになまいきいってんじゃねーよ

520:デフォルトの名無しさん
05/07/10 19:51:47
>>519
金玉も無いくせに(以下同文)

521:デフォルトの名無しさん
05/07/10 22:00:59
とりあえず、
X protocolは非同期メッセージを使ったprotocolで、
Xlibはその非同期メッセージを直接扱うAPIであること、
を理解してください。


522:デフォルトの名無しさん
05/07/10 22:01:23
>>519 お友達になってください。おながいします。

523:デフォルトの名無しさん
05/07/10 22:47:03
>>516の尻の穴で我慢しる

524:デフォルトの名無しさん
05/07/11 17:52:50


525:516
05/07/11 17:58:37
>>522
いれて、、、、、、、、、、、
ポッ



526:デフォルトの名無しさん
05/07/11 19:05:03
皆さんのお知恵をかりたいのですが

OS: Linux CentOS 4

自作アプリ内からの firefox 起動/終了について

アプリには、firefox起動メッセージとパラメータとしてURLがきます。
(URLはその都度変化する)

するとアプリは
1. スレッドをDETACHEDで生成
2. "1"のスレッドで system("firefox <URL>"); を行い firefox を起動
3. syste() が終了したら、
  メインスレッドにメッセージを送信して"1"のスレッド終了

としてます。


527:526
05/07/11 19:05:29
続き

アプリには複数回メッセージがきます。
その都度上記処理を実行し、これにより複数のURLに対してそれぞれ
firefoxウィンドウ が開きます。


ここで質問です、
特定のURLへの firefoxウィンドウが閉じたというアクションを自アプリ内で
どうすれば知ることが出来るでしょうか?


当初、各子スレッドが system(3)でブロックすることを期待していたのです
が firefoxは、既に起動していると既存のfirefoxプロセスにて新URLへのウ
ィンドウを開くため system(3)がすぐに終了してしまいます。

よろしくお願いします。


528:デフォルトの名無しさん
05/07/11 19:34:37
>>527
firefoxが生きている間待ちつづけるスクリプトを書くとか

529:デフォルトの名無しさん
05/07/11 19:41:24
拡張とか書かないと無理じゃないかねぇ。

530:527
05/07/11 19:56:25
>>528
ちょっとイメージがわきません。
詳しく教えていただけますか?


531:デフォルトの名無しさん
05/07/11 19:56:32
systemじゃなくて fork + exec じゃだめなんか?


532:527
05/07/11 20:12:31
>>531

pid_t child;

if ((child = fork()) == 0) {
  execlp("firefox", "URLリンク(www.linux.or.jp)", (char*)0);
}

if (child < 0) {
  goto end;
}

waitpid(child, NULL, WNOHANG);

をやったのすが、指定したURL URLリンク(www.linux.or.jp) が表示されず、
また waitpid もすぐ戻ってしまいました。

どうすればいいんだろう...


533:デフォルトの名無しさん
05/07/11 20:24:35
execlpの引数合ってる?

534:デフォルトの名無しさん
05/07/11 20:26:19
> firefoxは、既に起動していると既存のfirefoxプロセスにて新URLへのウ
> ィンドウを開くため

が真実ならば、fork() & exec()で実行しようが何の解決にもならんだろ
馬鹿馬鹿しい

535:デフォルトの名無しさん
05/07/11 21:57:58
ソース読めばぁ?

536:デフォルトの名無しさん
05/07/11 22:37:12
つーか、ソフトウェア板行ったら、
誰かがその目的に合った拡張を書いてくれると思う。

537:526,527
05/07/12 13:33:12
dirtyな方法でしょうが、なんとか動かすことができました。
とった手段は次の通りです。


1.スレッドでURLに対応したプロファイルを作成する
 プロファイルは既存のものでも大丈夫なようです。

  system("firefox -CreateProfile <profile>");


2."1"のプロファイルを指定し、firefox を起動
  system("firefox -P <profile> <url>");

  新規に作成したプロファイルの場合、標準エラー出力にエラー/警告がでます。


上記によりその都度 firefoxが別プロセスで起動し、子スレッドが system でブロックするようになりました。
firefoxを閉じると system から戻ります。


他に良い方法がありましたらどうぞご教授下さい。
色々考えてくれたか方々、ありがとうございました。


538:デフォルトの名無しさん
05/07/12 20:01:45
>>537
だからさー、何でソース読まないの?

539:537
05/07/12 20:52:14
         -、            ,.-、
        ./  .\          /  ヽ
       /    ;ゝ--─-- 、._/    .|
       /,.-‐''"´          \   |
     /                ヽ、 |
    /  ●                ヽ| >>538
     l       (_人__ノ         ●   l いや、そんな事言われても
    .|  ´´    |   /            |             ワテ猫やし
     l        ヽ_/         ´´  l
    ` 、                    /
      `ー 、__              /
          `'''ー‐‐─‐┬‐‐'''""
           /      |
           /        |

540:デフォルトの名無しさん
05/07/12 21:08:08
>>539
なごんだ

541:デフォルトの名無しさん
05/07/14 00:27:29
APUEの新版買った人いる?
いたら感想聞かせて


542:デフォルトの名無しさん
05/07/17 07:40:38
クラスの関数でEUCの文字列をUTF-8に変換するものを作りました。
これをあるプログラムから呼ぶと正しく処理できるのに、別のプログラムから
呼ぶとiconv_open()の部分で
 iconv_open(): Invalid argument
とエラーになってしまいます。iconv_open()の引数は固定なので上記のような
エラーにはならないと思うんですが、こういうことはどういう原因で起こりえる
のでしょうか? 曖昧な質問ですみません。

2つのプログラムは同じ環境でコンパイルして動かしています。
MiracleLinux2.1 + gcc3.2.2 + glibc2.3.2です。
---
class Hoge
{
 ( ... 略 ... )
 void Hoge::UTF8deHyouji(const char*str)
 {
  ( ... 略 ... )
  iconv_t cd = iconv_open("UTF-8","EUC-JP");
  if(cd == (iconv_t)-1)){
   fprintf(stderr, "iconv_open(): %s", strerror(errno));
   return;
  }

  if(iconv(cd, &inbuf, &inleft, &outbuf, &outleft) == (size_t)-1){
   fprintf(stderr, "iconv():%s", strerror(errno));
  }
  iconv_close(cd);
  ( ... 略 ... )
 }
}
  

543:デフォルトの名無しさん
05/07/17 09:36:49
まずmainの直後でやれ
話はそれからだ

544:デフォルトの名無しさん
05/07/17 09:39:21
man iconv_open の ERRORS のセクションはご覧になってらっしゃる?


545:542
05/07/17 12:57:11
>>543
変換部分だけを切り出して実行すると正常に動作します。
またクラスから呼び出して動作する場合もあるのです。

もともとは大きな(?)プログラムの中で使用されていたクラスで
そこではエラーになるので、クラスの関数だけ呼び出して実行
する簡単なプログラムで試したらエラーが出ないという謎の状況
です。

>>544
変換だけ行うプログラムなどでは正常に動作するので、サポートは
されていると思うのです。また、iconv -l でもEUC-JP、UTF-8がある
ことを確認しました。同じ環境でプログラムによってEINVALが返って
しまうことはあったりするのでしょうか…?



546:デフォルトの名無しさん
05/07/17 13:57:34
iconv_openの呼び出しをstraceしてみるトカ

547:542
05/07/17 14:40:26
>>543
ふと思い立って、動かないほうのプログラムのmain()で
iconv_open() 〜 iconv_close() までの処理を書いてみたら
そこでも「Invalid argument」になってしまいました。
だんだんワケがわからなくなってきました…orz

>>546
ありがとうございます。やってみます。
(実はstrace自体知らなかったりしますが…)

548:542
05/07/17 14:53:40
straceの結果、下のような行がありました。
open("/usr/lib/gconv/gconv-modules.cache", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/lib/gconv/gconv-modules", O_RDONLY) = -1 ENOENT (No such file or directory)

動かないほうのプログラムを調べてみると、サーバプログラムなので
実行ユーザのホームにchroot()していました。試しにchrootしている
箇所をコメントアウトしたら正常に動作しました。

問題の原因は解ったのですが、iconv()を使用するプログラムでは
chrootしてはいけないということになるのでしょうか?セキュリティの
関係でここはchrootしておきたいのですが、何か良い解決策はない
ものでしょうか。

549:デフォルトの名無しさん
05/07/17 14:57:56
chrootした先にも必要なもの一式そろえてあげればいいのでは。

550:デフォルトの名無しさん
05/07/17 15:33:21
>>548
chrootの意味わかってるか?


551:542
05/07/17 15:35:38
>>549
ホームディレクトリを基点に/usr/lib/gconvのディレクトリを掘って
丸ごとコピーしたら動きました。ありがとうございます。

552:デフォルトの名無しさん
05/07/17 15:39:15
ソースをざっと見ただけだけどchrootの前に一回iconvを呼べばそれは必要ない気がする。

553:542
05/07/17 15:49:42
>>550
一応解っていたつもりだったのですが、iconv_open()などの
内部で行われる動作についてはなんとなく例外のような感じが
していました…

>>552
最初に生成した変換ディスクリプタを使いまわすということでしょうか。
うまく行きそうな気がするのですが、ちょっと構造が大きく変わってしまうので
別の機会に試してみたいと思います。

554:デフォルトの名無しさん
05/07/17 15:58:15
そうじゃなくて、gconvは最初に呼ばれたときに一回だけgconv-modulesを読み込んで
初期化して、それ以降はファイルアクセスしないみたいだから。

555:542
05/07/17 16:58:39
>>554
確かに>>548のエラーもログの中で一度しかでていませんでした。
仰るとおりchrootの前にiconv_open()→iconv_close()だけ実行したら
コピーしたファイル無しでも問題なく動作しました。

これで全てすっきりです。
ご回答いただいた方々、本当にありがとうございました。

556:デフォルトの名無しさん
05/07/17 20:02:05
このスレやっぱスゲー

557:デフォルトの名無しさん
05/07/17 20:48:13
どの辺がすごいのかよくわからないのだが
ム板のほうが深い話できるだろ

558:デフォルトの名無しさん
05/07/17 23:05:32
根拠がソースだけだと気持ち悪いのでマニュアルの記述を探してきた。
英語を面倒がらず、ソース読む前にマニュアルを読むべきだったな。>自分
URLリンク(www.gnu.org)
> 6.5.4.1 Format of gconv-modules files
> ...
> At the first call of the iconv_open function the program reads all available
> gconv-modules files and builds up two tables: one containing all the known
> aliases and another that contains the information about the conversions and
> which shared object implements them.

559: ◆AE4dNGZqMw
05/07/21 07:09:48
ちょっと愚痴らせてくれや
コンソールでscreen使ってソース書いてたんだけど
Xlibを使ったコードだったから、実験するためにtwm立ち上げて
そこでscreenをデタッチしてkterm上で実行してみたわけよ、でもなぜか
セグフォるの、調べてみたら
color_black = BlackPixel( disp, 0);
これでセグフォる
どう考えてもセグフォる部分じゃない
3時間ものすごい頭使って今まで考えたわけよ
pika−−−−−−−−−−nn!!!!!!!
もしかして、screenをデタッチしてやったからコンソールのときのなんかの変数受け継いでるのかな?
で、あたらしくkterm立ち上げてashで生で実行
‥‥‥‥‥‥‥‥‥‥
いけた‥‥‥‥
ほんと、今までの3時間なんだったんだろう‥‥


ごめん、 どうしても誰かにいいたかったの‥‥

560:デフォルトの名無しさん
05/07/21 07:33:36
あるマニュアル読んでたら
フォント名はコードに直書きするんじゃなくて
.Xresourcesに書けって書いてあるんだけど
なんで? 指定フォントの決め打ちなのにわざわざ書かせなきゃいけないの?

ってか、どうやって読み込めってんだよ


561:デフォルトの名無しさん
05/07/21 09:31:59
再コンパイルすることなく、
カスタマイズすることができる

562:デフォルトの名無しさん
05/07/21 09:45:40
>>559
環境変数を確認するのはことXWindowに関しては常道。

>>560
おまいさんもXWindowに関して基礎から勉強し直した方が…

563:デフォルトの名無しさん
05/07/21 10:58:37
XWindowの基礎なんて勉強しても無駄になることうけあい

564:デフォルトの名無しさん
05/07/21 11:09:11
身に付けて無駄になる基礎なんてない。

565:デフォルトの名無しさん
05/07/21 11:24:32
Xを使う以上、基本はXを知ることだと思うんだけど
Xの知識が無駄になるってどういうことなの?
また違うWindowSystem誰か作ったの?

566:560
05/07/21 11:46:10
ありがと

でも決め打ちだよ?
そのフォントじゃないと正しく動作しないの
それでも、やれっていうの?

567:デフォルトの名無しさん
05/07/21 12:07:51
今使ってるフォントに問題が発覚して
正しく動作する別のフォントに入れ替える必要が出てくるかもしれない。
とかね。

べつにローカルな使用だけでソースが手元にあって
いつでもコンパイルできるならなんでもいんじゃね?

568:デフォルトの名無しさん
05/07/21 12:29:23
>>565
「Xの仕事が無い」というだけのこと

569:565
05/07/21 19:43:12
お前らの人生全て仕事なんだ・・・
寂しいね

570:デフォルトの名無しさん
05/07/21 20:53:19
>>569
お、俺を一緒にするなよな? な?

571:デフォルトの名無しさん
05/07/21 21:11:20
うーん
でも仕事以外にXって使わないからなぁ・・・

572:デフォルトの名無しさん
05/07/21 21:58:54
家ではWindows使ってるって事?

573:デフォルトの名無しさん
05/07/22 07:56:56
>>559
> もしかして、screenをデタッチしてやったからコンソールのときのなんかの変数受け継いでるのかな?

「もしかして」じゃなくて調べろよ。

for i in `env | awk -F= '{ print $1 }'`; do (unset "$i"; ./a.out); done

どうせ全然違う原因だと思うが。

574:デフォルトの名無しさん
05/07/22 08:36:40
なにがしたいのかがまったくわからん


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

5393日前に更新/207 KB
担当:undef