[表示 : 全て 最新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/


448 名前:デフォルトの名無しさん mailto:sage [05/03/08 03:35:29 ]
Linuxの場合
/*i386*/
typedef unsigned int __kernel_size_t;
typedef long __kernel_clock_t;

/*amd64*/
typedef unsigned long __kernel_size_t;
typedef long __kernel_clock_t;

449 名前:デフォルトの名無しさん mailto:sage [05/03/08 05:16:22 ]
つまりポインタをlong型で扱う奴はバカint型で扱う奴はもっとバカってことでいいですか?

450 名前:429 mailto:sage [05/03/08 07:20:28 ]
>>443
> データベースとか情報検索とかはとっくに64bitないと話にならなくなってる。

そぉゆう意味で言ってるんだが...
「やっと」ってゆう言い方が悪かった. すまん.
おれ的には, やっと 10年くらい前からってな感覚だったもんで...

当初からそれなりに, 64bit マシンはメモリバス帯域広いし, マル
チプロセッサ化するために, バスのクロスバ化なんて, ハードウェ
ア的に見た場合, 非効率以外のなにもんでも無いようなことまでやっ
てるところもあるし...
それ以前は, こんなぜいたくはスパコンにしか許されなかったわけ
だから...


451 名前:デフォルトの名無しさん mailto:sage [05/03/08 07:39:51 ]
pc5.2ch.net/test/read.cgi/tech/1109793931/l50

452 名前:デフォルトの名無しさん [05/03/08 09:07:01 ]
printfでtypedefな型を扱えればいいんだが

453 名前:デフォルトの名無しさん mailto:sage [05/03/08 09:12:18 ]
>>448
BSDの方の型は、ユーザー空間にも公開しているものなので、
一度決めると変えない方がいいんじゃないかな。まあユーザー
プログラムが行儀良く書かれていれば、同じサイズの型に
変えても問題ない筈だけど、行儀良く書かれてない場合、
int と long の食い違いが生じると、lint では警告さえる
ケースがありそうな。
あとは、その CPU アーキテクチャの ABI の仕様書に書かれて
いる型名に合わせてるとかもあるかも。

Linux の方はカーネル内部用の型に見えるなので、良くわかんない。


454 名前:デフォルトの名無しさん mailto:sage [05/03/08 09:29:17 ]
>>452
C99 なら一応できるよ。

intptr_t x; なら
#include <inttypes.h>
printf("%" PRIdPTR "\n", x);
とか。

typedef intptr_t MyType;
してるなら同時に
#define PRIdMYTYPE PRIdPTR
もとしておいて、MyType の printf には
PRIdMYTYPE を同様に指定すればいい。

size_t も "z" 修飾子を使ってどうような
ことができる。


455 名前:デフォルトの名無しさん mailto:sage [05/03/08 09:43:57 ]
>>454
> size_t も "z" 修飾子を使ってどうような
> ことができる。

ついでにここも詳しく……


456 名前:デフォルトの名無しさん mailto:sage [05/03/08 10:48:23 ]
128ビットCPU(データバス幅>=アドレスバス幅>=64bit)なCPUは
相当長い間必要ないだろ。データバスが128bitなのはGPUじゃ
当たり前になってるんだろうけど。

16bit -> 32bit アドレス空間は6万5千倍。
32bit -> 64bit アドレス空間は42億倍。

このアドレス空間を使い尽くすのっていつ頃?
ヘタしたら人間が絶滅してるかもなw



457 名前:デフォルトの名無しさん mailto:sage [05/03/08 10:49:29 ]
>128ビットCPU(データバス幅>=アドレスバス幅>=64bit)なCPUは
                   ↓
128ビットCPU(データバス幅>=アドレスバス幅=128bit)なCPUは

458 名前:デフォルトの名無しさん mailto:sage [05/03/08 11:21:26 ]
>>455
z A following integer conversion corresponds to a size_t or
ssize_t argument. (Linux libc5 has Z with this meaning. Don't
use it.)

#define PRIdSIZE "z"

こういうのあんまり好きじゃないが。

459 名前:デフォルトの名無しさん mailto:sage [05/03/08 11:22:55 ]
>>458
うちのシステムには入ってないや……。


460 名前:デフォルトの名無しさん mailto:sage [05/03/08 11:24:18 ]
あ、標準では定義されてないけど458のように定義すりゃ同じようにできるよ、って
話かな?


461 名前:デフォルトの名無しさん mailto:sage [05/03/09 13:00:27 ]
そゆこと。でも>>458みたいにするんじゃなくて
#define PRIdSIZE "zd"
の方がいい。小文字の「d」の意味がなくなっちゃうから。
#define PRIxSIZE "zx"
とかしたいしね。


462 名前:461 mailto:sage [05/03/09 13:46:14 ]
補足。
C99を前提にしていいソフトなら、#defineせずに
"z"を直に書いた方がいいだろうけどね。
#defineする必要があるのは、C99より前の処理系
への移植を考慮する必要があるケースと、あとは
typedef size_t MyType;
#define PRIdMYTYPE "zd"
のように、自分で定義した型に対して printf の
フォーマット文字列を提供したい場合。


463 名前:デフォルトの名無しさん [05/03/09 23:29:27 ]
linuxで、mallocの関数の中身を知りたくて探してるのですが見当たりません。
glibcのソースを探してるのですが。。どこにあるのでしょうか?

464 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:32:00 ]
>>463
ダウンロードした場所にありましたよ

465 名前:463 [05/03/09 23:37:42 ]
ダウンロードした場所ですか?
うーん。glibc-xxx/malloc/malloc.cの中とかその周辺とか調べたんですがないんですよ。。

466 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:38:51 ]
入れなきゃ無いわな



467 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:40:22 ]
勝手にソース覗くのはストールマンに失礼ですよ。

468 名前:デフォルトの名無しさん mailto:sage [05/03/09 23:43:22 ]
>>467
アホ発見


469 名前:463 mailto:sage [05/03/10 00:03:13 ]
検索したらやっとそれらしいのにヒットした。。
www.gelato.unsw.edu.au/linux-ia64/0111/2457.html
>BTW, calloc is included in malloc.c.
> You would like to open the file glibc-2.2.4/malloc/malloc.c,
> and then you will be looking for cALLOc. It is calloc function.
そういえばmALLOcみたいな変なのがあったな。。
今ソースがないので明日調べてみます。お騒がせしました。

470 名前:デフォルトの名無しさん mailto:sage [05/03/10 00:38:22 ]
UNIXのソースってなんでこんなに汚いの?

471 名前:デフォルトの名無しさん mailto:sage [05/03/10 00:39:56 ]
お前の顔より綺麗だ

472 名前:デフォルトの名無しさん mailto:sage [05/03/10 16:32:09 ]
なんで俺の顔知ってんの?

473 名前:デフォルトの名無しさん mailto:sage [05/03/10 17:16:57 ]
基本

474 名前:デフォルトの名無しさん mailto:sage [05/03/10 20:35:26 ]
おそらく基本的な質問だとおもいますが
-lpthreadのリンクを下のようにMakefileで記述するとcannot find -lpthreadという
エラーがでてしまいます。

test:main.o sub.o
gcc -o test main.o sub.o -lpthread
main.o:main.c test.h
gcc -c main.c test.h
sub.o:sub.c test.h
gcc -c sub.c test.h

コンソールで一つずつコンパイルしていけば問題はないんですが・・・
よろしくおねがいします

475 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:34:31 ]
-lpthreadをオプションと認識していないみたいですな。
それはともかく、スレ違いです。

476 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:46:46 ]
>>475
Unixプログラミングの場合、スタンダードなIDEがないので、
Makefileやコンパイルオプション指定をする段階から
すでにコーディングの戦いが始まっていると思うのは俺だけですか?



477 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:50:13 ]
ある程度以上の規模なら、IDEを使おうと使うまいと
素敵なビルドの仕組みを作ることは
コード自体を書くことと同じくらい重要でぷ。

478 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:51:24 ]
だからあれほどUNIX捨てろって言ったのに・・・

479 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:53:09 ]
Windowsだとマウスでポチポチやるだけで終わる作業なのにねえ。
UNIXって頭悪すぎ。

480 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:56:15 ]
みえみえの展開に萎え

481 名前:デフォルトの名無しさん mailto:sage [05/03/10 21:58:32 ]
>>474
-lpthread の前に変なコード入ってないか od ででも確認してみたらどうだろう。

482 名前:デフォルトの名無しさん mailto:sage [05/03/10 22:20:31 ]
>>480
みえみえというか、すでに1つのお約束になってますな。
お約束は美しい。

483 名前:474 mailto:sage [05/03/10 22:49:23 ]
>>481
もう一回書き直してみましたけど直らないです
あとコンソール直打ちでもcannot findになってしまいました・・・

484 名前:デフォルトの名無しさん mailto:sage [05/03/10 22:54:35 ]
コンソール直打ちでうまくいってたときと、ダメなときの違いはなんなのよ。
libpthread.* がリンカから見えてないんじゃない?

485 名前:デフォルトの名無しさん mailto:sage [05/03/10 23:12:02 ]
たぶん環境変数 LD_LIBRARY_PATH が設定されてたとか、
そういう話じゃないの? でも libpthread が /usr/lib
にない OS ってなんじゃろ? NetBSD-1.6 とか?

486 名前:デフォルトの名無しさん mailto:sage [05/03/11 00:22:44 ]
>>474
UNIXの種類は何か書いた方がいい。
それ専用の板やスレに行くとモアベター。



487 名前:474 mailto:sage [05/03/11 00:29:21 ]
OSはFreeBSD4.11です。専用スレへ行ってきます
スレ汚しすいませんでした

488 名前:474 mailto:sage [05/03/11 01:00:05 ]
なんか-lpthreadを-pthreadにしたらリンクできた・・・
ちゃんと動いてるし・・・いいんだろうか・・・(´・ω・`)

489 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:03:57 ]
>>488
いいです。
-pthreadで、マクロの定義、ライブラリの適切な処理等を行います。

490 名前:474 mailto:sage [05/03/11 01:11:28 ]
>>489
どうもありがとうです
前にコンソールでやったのは-pthreadだったかもしれなかったです

491 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:22:00 ]
この謎仕様も悪しきUNIX譲りですか?

492 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:45:01 ]
ここはUNIXプログラミング質問スレですが何か?

493 名前:デフォルトの名無しさん mailto:sage [05/03/11 01:45:43 ]
やっぱWindowsの方がちゃんとしてるな。

494 名前:デフォルトの名無しさん mailto:sage [05/03/11 16:15:29 ]
スレッドってそんなにいいのか?

495 名前:デフォルトの名無しさん mailto:sage [05/03/11 17:07:19 ]
はい。

496 名前:デフォルトの名無しさん mailto:sage [05/03/12 00:40:12 ]
俺よりもいいのか?



497 名前:デフォルトの名無しさん mailto:sage [05/03/12 00:42:55 ]
ごめんなさい。

498 名前:デフォルトの名無しさん mailto:sage [05/03/12 01:27:23 ]
roz 違う… orz

499 名前:デフォルトの名無しさん mailto:sage [05/03/12 07:49:46 ]
・・・

500 名前:デフォルトの名無しさん mailto:sage [05/03/12 14:35:34 ]
>>491
ハァ?プログラミングは「UNIXこそが仕様」ですが何か?

501 名前:デフォルトの名無しさん mailto:sage [05/03/12 14:51:54 ]
>>500
-pthreadはUNIX仕様じゃなくて、gccの仕様だろ。

マニュアルに書いてある仕様を謎と呼ぶのは
マニュアルも読めない厨房だけだがな。


502 名前:デフォルトの名無しさん mailto:sage [05/03/12 14:58:09 ]
マニュアルってどこに売ってるんですか?

503 名前:デフォルトの名無しさん mailto:sage [05/03/12 15:34:57 ]
groff出力のテキストまたはポストスクリプトが、
アマゾン川流域で、約1000ペソ。

504 名前:デフォルトの名無しさん mailto:sage [05/03/12 16:05:24 ]
>>503
日本で買えませんかねぇ・・・

505 名前:デフォルトの名無しさん mailto:sage [05/03/12 18:31:50 ]
もうPOSIXだのANSIだのめんどくさいよ
ぜんぶMSのWindowsにあわせればOKだよ。

506 名前:デフォルトの名無しさん mailto:sage [05/03/12 20:59:20 ]
WindowsのmessageとPOSIX Message Queueってどう違うの?



507 名前:デフォルトの名無しさん mailto:sage [05/03/12 22:46:22 ]
商用UNIXだったらしっかりしてるんだけどね。

508 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:07:10 ]
UNIXやWindowsで動く自作言語を作っているのですが、
UNIXの例外処理はどんなロジックを使えばよいでしょうか?
Windowsの場合はSEHという機構を使ってます。
Javaでいうfinallyやcatch辺りの処理の話です。


509 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:21:57 ]
>>505
MSのWindows(ゲイツ)は、POSIXだのANSIにあわせるよう努力してくれるが、
逆の努力は誰もしてくれない。

Unixに腐敗臭が漂うのも無理はない。19世紀の老大国を見る思いだ。

510 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:54:34 ]
ようするにUnixは何をやるにしてもダメっていうことね。

511 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:57:38 ]
そうだね。UNIXも使えない人な何をやってもダメだね。

512 名前:デフォルトの名無しさん mailto:sage [05/03/14 01:58:46 ]
皮肉でしか返せないんだね

513 名前:デフォルトの名無しさん mailto:sage [05/03/14 02:04:42 ]
>>508

実装言語による。
C++で書くなら、C++標準の例外処理処理機構を使えばいいんじゃない?
Cで書くなら、自分で明示的に制御するしかない。


514 名前:デフォルトの名無しさん mailto:sage [05/03/14 02:06:48 ]
WindowsがやってるPOSIXに合わせようとする努力って
なんの話? SFUのこと言ってるのかな?
だったらUNIX上での似たようなものとしてはWineとか
Monoがあるよ。
というわけで、逆の努力もしてるってことで終了。


515 名前:デフォルトの名無しさん mailto:sage [05/03/14 02:38:16 ]
コンパイラをANSIに対応させるのは当たり前だし
WindowsNTにPOSIXサブシステムがあったのは「POSIXに準拠してないと導入しない」と
アメリカの政府機関が言い出したからなんだけどな

516 名前:デフォルトの名無しさん mailto:sage [05/03/14 03:01:02 ]
>>515
NT系Windowsの POSIXサブシステムはそういう話だね。
はっきり言ってあれは全く使いものにならんかった。
FIPS規格に通ることだけが目的で、実用性ゼロ。

でもSFUの方は結構ましだと思うけど。
もちろん、ソースレベルの限定的な互換性しかないから、
バイナリ互換性を提供してくれるWineやMonoには劣るけど。



517 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:09:45 ]
Unixer達はなんだかんだ言いながらもWindowsのアプリを動かしたくてたまらないちうことやね。
憧れちゃいますかそうですか。

518 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:21:02 ]
別に好きで使いたいわけじゃないんだけど、上司や客が
WordやExcel形式で文書を送ってくるので仕方ないっすよ。
という俺はVMwareのクライアントOSとしてWindowsを動かす派。
自分で一から書く文書には、もちろんそんなの使わないけどネ。


519 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:27:17 ]
結論。
Unixerはいらん苦労が好き。

520 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:39:38 ]
>>518
今ならOpenOffice使うって手もあるけどね。
互換性はまだまだ低いけど。

521 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:57:31 ]
UNIXは昔からtelnet(というかteraterm)経由ですが何か?
それで問題起きたことないなあ。
つーかteratermなかったらUNIXなんてとっくに死滅してたね。
おまえらもっとteratermの作者に感謝すべきだと思いませんか?

つーかWindows上からteratermの快適さに比べたらX?ナニソレって感じ。
あんなのインスコしてもディスクの無駄。
どーせemacs動けばいいしね。

522 名前:デフォルトの名無しさん mailto:sage [05/03/14 04:58:27 ]
おっと誤爆した。

523 名前:デフォルトの名無しさん mailto:sage [05/03/14 08:56:03 ]
teratermを理由もなしに誉めるようじゃ……

524 名前:デフォルトの名無しさん mailto:sage [05/03/14 09:23:07 ]
telnet上でファイルをやり取りできたらすべての作業がtelnetでやるんだけどできる?

525 名前:デフォルトの名無しさん mailto:sage [05/03/14 10:07:56 ]
できるね。

526 名前:デフォルトの名無しさん mailto:sage [05/03/14 10:18:16 ]
>>525
Unixユーザ特有の思考停止だな。

ターミナル経由でなければできないことは、
想定しないように脳内で排除フィルタが発動する。



527 名前:デフォルトの名無しさん mailto:sage [05/03/14 10:31:55 ]
>>526
確かに面倒ではあるが、uuencodeして標準出力に出力、
telnet端末ソフトにログ機能などがあるだろうからそれを利用して端末側でuudecode。
自分の知識のなさを他人の思考停止に置き換えないように。

528 名前:527 mailto:sage [05/03/14 10:34:08 ]
訂正。
s/telnet端末ソフト/telnet端末ソフト側/
Windows標準のtelnetでも(windowsの機能を利用して)copy&pasteくらいできるだろ。

529 名前:デフォルトの名無しさん mailto:sage [05/03/14 11:04:48 ]
関係ない話ししはよそでおねがいします

530 名前:デフォルトの名無しさん mailto:sage [05/03/14 11:10:49 ]
結論から言うと、できないことだらけなのだが、

Unix信者には、「それはそもそも、XであってUnixではない。」
と嘯きつつ逃亡する退路が確保されているので、
Unix信者を追及するのは時間の無駄。

531 名前:デフォルトの名無しさん mailto:sage [05/03/14 11:16:01 ]
時間の無駄だと言いながら、自分が最後に何か言わないと気がすまないのかね。

532 名前:デフォルトの名無しさん mailto:sage [05/03/14 14:35:54 ]
ほりえもんもUNIXにビジネスチャンスは無いってさ

533 名前:デフォルトの名無しさん mailto:sage [05/03/14 14:47:26 ]
おまえらこれを読んでから言え
www.amazon.co.jp/exec/obidos/ASIN/4756107834/

534 名前:デフォルトの名無しさん mailto:sage [05/03/14 14:53:55 ]
UNIXの歴史を物語りみたいに仕立て上げたのって嫌い。文系厨みたい。
ただの実装史と割り切って書かれてる、スティーブンスの本は好き。

535 名前:デフォルトの名無しさん mailto:sage [05/03/14 15:29:54 ]
がたりり?

536 名前:デフォルトの名無しさん mailto:sage [05/03/14 15:58:08 ]
teraterm使ってる時点で既にUnix信者じゃないと思うけどね。
そういう俺は当然ktermですよ。mltermでも可。(w




537 名前:デフォルトの名無しさん mailto:sage [05/03/14 16:01:06 ]
むつかしくてわらえない

538 名前:デフォルトの名無しさん mailto:sage [05/03/14 18:23:40 ]
そもそもUNIXでプログラミングする事なんてあるの?
teratermみたいにUNIX使うためのWindowsプログラミングでもしてた方がいいんじゃない?

539 名前:デフォルトの名無しさん mailto:sage [05/03/14 18:28:10 ]
時間の無駄だと言いながら、自分が最後に何か言わないと気がすまないのかね。

540 名前:デフォルトの名無しさん mailto:sage [05/03/14 19:03:06 ]
>>538
そりゃあるよ。だいたい世の中の7割のWebサイトは
(Linuxを含む)UNIX系OSで動いているんだしさ。
ソフトウェア開発作業を必要とする大規模なサイト
になるほどUNIX系OSのシェアは上がるし。
googleだってamazonだって、Linuxとかそういう
UNIX系OSで動いてるのは知らない?


541 名前:デフォルトの名無しさん mailto:sage [05/03/14 19:39:43 ]
てゆうか2chもUNIX系OSで動いているわけだが。

542 名前:デフォルトの名無しさん [05/03/14 19:45:32 ]
てゆうか2chもWindows系OSで動かせばいいんだ。

543 名前:デフォルトの名無しさん mailto:sage [05/03/14 20:02:35 ]
実際問題として、ライセンスにかかる価格の問題だけ
考えても Windows にすることはありえないけどね。
Windows XP だとクライアント数10までというライセンス
制限にひっかかるから、Windows 2003 Server が必要。
これで 1台あたり10万円×台数分の金がかかる。
これに対し、今みたいに FreeBSD や Linux を使ってれば
ライセンス台はタダ。
Windows にするだけで性能が向上して、台数が1/10で済む
とかいう効果があるのならともかく、そんなことも全然ない
わけだし。

544 名前:デフォルトの名無しさん mailto:sage [05/03/14 20:19:49 ]
宗教的にUNIXだよもん

545 名前:デフォルトの名無しさん [05/03/14 21:34:14 ]
Windowsのほうが得意なことはWindowsでやればいいものを、
わざわざkterm上でやって「難しいなあ」とか喜んでる奴は末期症状

546 名前:デフォルトの名無しさん [05/03/14 21:34:25 ]
>>533
そのページを読めばいいんですね?



547 名前:デフォルトの名無しさん mailto:sage [05/03/14 21:39:29 ]
別に難しいことないけど。
てゆうかWindowsで好みの設定にするのは俺には難しい。(w
UNIXだとcp .??*だけですむので俺には簡単。

もちろん、君にとっては逆だろう。いいじゃん好きずきなんだし。


548 名前:デフォルトの名無しさん mailto:sage [05/03/14 21:44:18 ]
つーかWindowsはデフォルトで快適だからなあ。






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

前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