Mac の CD-ROM の partition map の件ですが、Mac の人は CD burner を使うだけで
こと足りるので、聞いても分かる人がないようなので、ぐぐってみたら、unix 関係で
プログラムで引っかかるので、聞きに来ました。
(Inside Macintosh の SCSI Manager, Start Manager はありきたりの記述)
Mac の CD-ROM の先頭には、いわば device 用の諸元が入りますが、そのひとつに
全体容量をブロックサイズ(あるいはセクタサイズ)で割った数が入るところが
あります。で、この数がゼロのものと、丁寧に計算しているものがあります。
2−3の例から、読みこみ時には最早参照されていない感じがしますが、実情はどうか
ご存知の方はいらっしゃいませんか。
(2,3の Mac の CD-ROM も見ましたが、いろいろで、気持ちが悪いのです)
>>952 > Mac の CD-ROM の先頭には、
というのは一体?
>>953 どうも。
構造体名:Block0 は次ぎのように始まっています。
"ER"の signature
unsigned short sbBlkSize // 512 or 2048 (bytes) がよくある
unsigned long sbBlkCount // これが問題の Blk 数
....
driver 数
driver 開始 Blk で始まる8バイトのデータが繰り返される。
....
次ぎの Blk といっても、sbBlkSize=2048 でも 512 bytes 後ですが、
partition map が(512 bytes 毎に)続きます。
....
driver routine ...
955 :
デフォルトの名無しさん:04/05/24 14:11
unixを使ったcプログラミングで、
if( fork() == 0){
/* 子プロセス */
execlp("ls", "ls", "-lag", NULL);
}
/* 親プロセス */
printf("done\n");
exit(0);
unixでこういうプログラムを実行したら、
doneが表示されて
lsの実行結果が表示されて
そのあと見えないプロンプト(?)が存在するようになるんですけど
これはどういうことなんですか?
>>955 見えないプロンプトの存在をどうやって知ったのだ!?
おいといて。
シェルに戻ってプロンプトが表示された後で
ls が実行されてるんでそ。
こんな感じですか?
pid_t ret;
if ((ret = fork()) == 0) {
execlp("ping", "ping", "-c", "3", "localhost", NULL);
} else if (ret > 0) {
wait(NULL);
printf("done\n");
} else {
perror("fork");
exit(1);
}
>>954 最近はtapeみたいにon the flyで書き込んでいくから、
正直分かりませんってとこなんじゃないの?
CD-ROMは辿っていけば分かるしね。
>>958 レスをありがとうございます。
Apple_Free は、見ないってのは、あったのですが、
Apple_HFS もブロック数はどうでもよくなっている見たいで、
やはり、そういう流れでしょうか。
UNIX のソースにも、/* XXX */ ってコメントが付いている。
coreってどうやってデバックすればいいの?
$ gdb a.out core
962 :
デフォルトの名無しさん:04/05/26 09:18
>>961 いやそれは分かるんだけど、そのあとどうすればよいのか分からない。
(gdb) where
実例入力
(gdb) bt
(gdb) f
(gdb) list
(gdb) print var
(gdb) printf "%08x",var
(gdb) up
(gdb) list
(gdb) list 20
(gdb) down
>>965 それだとupの時点でlistの効力が切れるから次ターンでcontの反撃を食うことになるぞ。
GUIフロントエンド使えって
俺はemacsで使う
>>968 readline使えなくて地獄じゃないですか?
使えるよ。
でもちょっと変数を見たいだけなら fprintf が手っ取り早いんだな。
Emacsのフロントエンドって時々おかしくなるので困る。
コマンドラインのgdbで実行すると正しく動くのに、
Emacs上のgdbフロントエンドからだとステップ実行の行がおかしかったり
落ちてしまったりするんだよな。なぜだろう。
DDDは日本語を含むファイルで位置の計算が合わないし、どこかにフロントエンドはないものか。
973 :
デフォルトの名無しさん:04/05/28 15:30
OutputDebugStringみたいなのってないですか?
syslogじゃなくて。
>>973 どーゆー機能が欲しいかも書かず
「みたいなの」じゃ判らん。
fprintf(stderr, 〜 じゃ駄目なのか?
975 :
デフォルトの名無しさん:04/05/28 16:21
linuxで書いたネットワーク関係のライブラリを
カーネルモジュールにして欲しい、って言われますた。
仮想ネットワークドライバにしようと思うんだけど、移植って簡単にできるの?
mallocとかしてるとこを全部kmallocに書き換えないといけないくらい?
あとlibsslとかの普通のアプリケーション用ライブラリってカーネルモジュールに使えるの?
976 :
デフォルトの名無しさん:04/05/28 16:30
>> 975
一般的にカーネルモードで動作するロジック中で、
システムコールやライブラリ関数を使う事は出来ません。
つまり、マニュアルセクションの2と3は使えないってこと。
使用可能な関数は、セクション9になります。
また、ユーザーランドのプログラミングとカーネル内部の
プログラミングでは、プログラミングを行うときの考え方や
気をつけないと行けない事、その他もろもろ、など全く異なる
概念でもってプログラムを作成しなければいけません。
よって、移植というレベルではありません。
2.6で激しく変わったんじゃなかったかなあ>NW周り
>>976 ってことはかなり書き換えですか・・・。
tron用にも書いて欲しい、とか言われたので
カーネルモジュールにしようと思ったんですが、
とりあえずtun/tapを使う方向で考え直してみます。
ありがとうございます。
>>977 2.4をターゲットにするんでそこは大丈夫そうです。
ソケット通信時にrecvfromでデータを受信してるんですけど確実に第3引数で指定した
サイズを受信するまで待つようにするにはどうすればいいでしょうか
>>979 そんな機能はない。
ループ組んでバッファへのポインタずらしてやれば。
981 :
デフォルトの名無しさん:04/05/29 23:32
locale 調べるのって LANG 見ればいいの?それとも LC_ALL?
982 :
デフォルトの名無しさん:04/05/29 23:42
>>981 優先順位は
LC_ALL > 他のLC_* > LANG
986 :
デフォルトの名無しさん:04/05/30 00:39
>>979 recvfrom ってことはUDPだよね。
UDPてことはsend もしくは、sendtoで送った1つのパケットが
そのまま受け取れるんじゃないの?
recvfromで指定するサイズって送信側とネゴしておいた値を
使うものじゃないの?
だから、なんでrecvfromで指定したサイズが受け取れないという
ケースがあるの?
TCPと勘違いしてない?
>>986 recvfromするサイズがsendtoで投げたサイズより小さい場合とかはどうなるんですか?
>>986 >UDPてことはsend もしくは、sendtoで送った1つのパケットが
途中でフラグメント化したりしないんですか?後、IPパケットが複数になってどっちかが遅延したりとか。
989 :
デフォルトの名無しさん:04/05/30 01:57
OS起動時に呼び出されるrcスクリプトに関して質問です。
このrcスクリプトから呼ばれる各種アプリケーションの起動スクリプト内で、
コマンドを実行するときに'&'を付けてバックグラウンド実行されている
ものを見たことがないです。'&'を付けないで実行する理由は何でしょうか?
なんかわけわからん質問かも知れませんが、わかる方いたら教えてください。
>>989 シェルスクリプト終了時にコマンドがすべて完了している事が保証されなくなるから。
とか。
例えるなら、
「納期は今日だ!しかしテストは現在進行中だ!
まぁ、客もすぐここの試験をやるなんて言わんだろう・・・多分・・・。
よし!なんとかなる!客には終わったって言うぞ!!」
なんて言うアグレッシブな状況になると、思いました。
非同期処理で必ずつきまとうタイミングの問題をわざわざ持ち込む必要もなければメリットもない
と言うことかなと(結局の所変な待ちが無ければ処理時間は大して変わらんので。)。
>>988 何のためのマルチレイヤだ?
それらは,IP層で全て吸収される。
>>987 尻切れで後ろは切り捨て。これが基本。
実装次第では,オプション等でどうにかできる可能性もあるが,
そんなもんに期待してはいけない。
992 :
デフォルトの名無しさん:04/05/30 14:16
>>990 ありがとうございます。自分は入社2年目ですが、1年目のときに
知らなかったせいでそれをやらかしてしまったのです。
HP-UXでrcスクリプトが先に終了するとSIGHUPが飛んできて、バックグラウンド
実行中のプロセスが消えました。しかし不思議なことにSolaris、AIX、Linuxでは
発生しないのです。そのあたりはOSの仕様だと勝手に自分を納得させていますが、
nohupというコマンドで最終的に切り抜けたことに不安があります。
993 :
デフォルトの名無しさん:04/05/30 16:11
>>987 >>988 >>991 の言うとおり。
フラグメントかされたパケットは、きちんと元通りにされてアプリに
渡されます。
TCPでデータをsendしたときに、sendしたサイズ分が1回のrecvで受け取れるわけ
ではないというのと混同してないか?
>>992 私も二年目です。
HP-UXベースのリアルタイムOSを使ってます。
おもしろそうだから実験してみよっと。
995 :
デフォルトの名無しさん:04/05/30 23:22
alarm()等から送られるシグナルを受け取るハンドラは、送ったスレッドと同じスレッドで実行されるのでしょうか?
つーかいいかげん、そろそろ次スレ立てろや、次の奴↓
↑ちょっと待っていろ。
998 :
デフォルトの名無しさん:04/05/31 00:42
999 :
デフォルトの名無しさん:04/05/31 00:56
【ビギナ】初心者が習うべき言語は? part4【必読】
1000
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。