■ 2ちゃんねるは、ここのサーバを使ってるです。。。
 .jp ドメインお持ちのお客様大歓迎。maido3.jp
 .fm 取得代行します。(US) maido3.fm
 .ca 取得代行します。(US) maido3.ca
 .com .net .org 取得代行します。(US) maido3.com
 .cc .to .tv 取得代行はじめました。NEW
人気サイト
月々1,000円からの BinboServer.com 2ちゃんねるも使っている Big-Server.com
>> 2ちゃんねる、サーバ監視所

■掲示板に戻る■ ■過去ログ倉庫めにゅーに戻る■
C言語なら、俺に聞け! <15>
1 名前: Dennis Ritchie 投稿日: 02/03/19 15:27
漏れは38才、21年間プログラムを一生懸命作ってきた。
いろいろな言語を極めたが、一番手になじむのはCだった。
Cのことならぜんてわかるから、疑問な点があったら漏れに聞け。

だが、いちいちFAQに載った質問に応えるほど暇じゃない。
課題丸投げなら別スレにいけ。

・comp.lang.c Frequently Asked Questions
http://www.eskimo.com/~scs/C-faq/top.html

・C FAQ 日本語訳
http://www.catnet.ne.jp/kouno/c_faq/c_faq.html

Cプログラマならこれを買っとけ。
・プログラミング言語C(K&Rと呼べば通だ)
http://www.amazon.co.jp/exec/obidos/ASIN/4320026926/yfcbookshelf-22/250-3950205-1475419

推薦図書/必読書のためのスレッド PART2
http://pc.2ch.net/test/read.cgi/tech/1010312992/l50

・前スレ C言語なら、俺に聞け! <14>
http://pc.2ch.net/test/read.cgi/tech/1015286974/l50



2 名前: デフォルトの名無しさん 投稿日: 02/03/19 15:28
お、きたきた


3 名前: デフォルトの名無しさん 投稿日: 02/03/19 15:29
今田げとー


4 名前: デフォルトの名無しさん 投稿日: 02/03/19 15:31
4げとー


5 名前: デフォルトの名無しさん 投稿日: 02/03/19 15:52
fork について聞きたいのですが、
これを使うとプログラム中に子プロセスが作られますが、自分の予想では、
その子プロセスもforkを使って子プロセスを作って、そのまた子プロセス
もforkを使って...という風に無限に続くと思ったのです。しかし
いざプログラムを組んでやってみるとどうやらforkは一回しか使われて
いないようなんです・・・ forkで作られた子プロセスはいったいどういう
動きをするのでしょうか?教えてください。


6 名前: デフォルトの名無しさん 投稿日: 02/03/19 15:57
forkのあと親と同じ状態でスタート


7 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:02
なんだぁ、>>1の名前に期待してたのに・・・


8 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:05
プロフィールが日下部のままなのが笑える


9 名前: 5 投稿日: 02/03/19 16:11
/*ヘッダは省略*/

int main(void)
{
pid_t pid;
char *message;
int n;

pid = fork();

switch(pid)
{
case -1:
/*エラー*/
exit(1);
break;
case 0:
message = "This is the Child";
n = 5;
break;
default:
message = "This is the Parent";
n = 3;
break;
}

for(; n>0 ; n--){
puts(message);
sleep(1);
}

/*以下省略*/

}

というようなプログラムなのですが(書籍:Linuxプログラミングより) 6さんの言ったことは
”子プロセスはforkの次の行から処理を実行する”ということで合ってますか?



10 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:11
ぜんてってなんだよ。アレンジにしてはひどいな。


11 名前: 勉強中 投稿日: 02/03/19 16:12
#include <stdio.h>
static int i = 1;
extern int i ;
int main(void)
{
printf("%d",i);
return 0;
}

エラーにならないのは何故ですか?
これはどういうことでしょうか?


12 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:13
>>1
2ちゃんではリッチーと日下部が同列なのかよ...


13 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:13
子プロセスはfork()から0が帰ってきたように振る舞う。
が正しい。
「次の行から」という認識は間違っているぞ。



14 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:13
>>10
全て=ぜんて
このスレの慣わしです


15 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:13
>>11
どうしてエラーになるの?


16 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:15
staticを外してみよう


17 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:16
extern int i;

は、「 i という識別子が外部スコープにあるからそいつをint型として扱ってくれよろしく。」と読め。

static int i = 1;

は、
「iというint型変数をこのスコープに宣言する。staticなんで他のファイルからは見えないからよろしく。
初期化は1で。」

と読め。

どちらも矛盾していない。





18 名前: 勉強中 投稿日: 02/03/19 16:26
ご丁寧にありがとうございました<(_ _)>
確かに矛盾してませんね。


19 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:26
>>17
この場合、出力している i はどっちになる?


20 名前: 仕様書無しさん 投稿日: 02/03/19 16:27
static int i;


21 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:32
>>20
extern で手に入れた外部の i を利用するときは?


22 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:35
staticとexternは名前空間が別なのか...
初めて知った。


23 名前: 勉強中 投稿日: 02/03/19 16:36
ついでに関数などでexternalなiを使う方法は無いですか?
普通にiを使えばstaticな方を全て指すようになるから無理ですか。




24 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:40
そもそも外部変数を参照しようというのが設計的にしょぼいっツーか
スパゲッティの元なので、

extern int GetXXXDataI();
extern void SetXXXDataI(int i);

でも作って、他のファイルスコープにあるデータは
setter/getterを経由して参照しなさい。



25 名前: 17 投稿日: 02/03/19 16:42
ついでにいうとお前>>22は何か勘違いをしている。



26 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:43
>>24
禿しく同意


27 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:44
>>24
おれもそんな感じにオブジェクトファイルを
クラス風に見立てていつもやってるんだけど、
これって正しいやり方なのかな?


28 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:46
Cではよくあるやり方でないかい?



29 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:47
>>28
ちと安心した


30 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:48
>>7
次スレはお前がたてろ。
面白くなければ死刑に処す。


31 名前: 勉強中 投稿日: 02/03/19 16:49
ごめんなさい、スパゲッテエェはもう作りません。


32 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:52
Σ(´-`).。oO(>>1の名前がリッティジャン・・・haxahaax)


33 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:53
static int i;
int ii;
int main()
{
 ・・・
これら二つの変数が異なるセクションに確保されるのは
言語的に決められているんでしょうか?


34 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:59
識別子が違うし刈りの定義は0で初期化されるし
じゃなくて>>1さーん
リッチィ先生は38歳じゃないよぉ・・。
50〜60歳?いいお年だな( ;´Д`)堪らないねぇハァハァ


35 名前: デフォルトの名無しさん 投稿日: 02/03/19 16:59
違いはスコープだけで、置かれる場所は同じだ。

int ii;は他のスコープからextern int ii;かなにかで参照され得るが、
static int i;は、ファイルスコープ内からしか合法的に参照されることはない。




36 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:00
リッチィ先生のティンポ、、ハァハァ


37 名前: 5 投稿日: 02/03/19 17:09
>>13
"子プロセスがforkを呼び出しても孫プロセスは作らずに0を返す"
と思っておけばいいでしょうか?


38 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:12
>>37
永遠に子供を産むことが出来ます。
子供の子供の子供の・・・


39 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:13
あるのはプロセスを作った方(=親)と作られた方(=子)という関係だけで、
ある子が、forkでプロセスを作ったとすれば、またそこで親と子の関係がひとつできあがる。

子がforkを呼べば、孫プロセスが作られ、孫プロセスのpidが返る。


40 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:14
そもそもお前らのプロセスはみんな init(0)の子なんだよ。(UNIX系限定)



41 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:19
実際のプログラムを作るときには
プロセスグループ、セッショングループとかが
関係してくるからStevens大先生の本を読むのが
いいよ。
おれはあんまり詳しくないから説明できない、スマソ


42 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:19
子供は、たとえ死んでも 親が生きてる限りゾンビとして残りますよね?
親子の縁を切りたいときはどうすればいいのでしょうか?


43 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:22
setpgid()


44 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:28
ごめん、43は勘違い。うそでした。


45 名前: ちょい教えて 投稿日: 02/03/19 17:40
IEのバージョン6のPCユーザーにメールを送るとアクティブXが
引っかかってメールが開けないらしい。こんなことってあるの?
もし、このアクティブXをメール送信者から制御できるいい方法ってある?


46 名前: 5 投稿日: 02/03/19 17:40
>>42
どうやるんですか?ギブアップです。
wait使うとか?


47 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:41
>>45
わけわからん。
っていうか、ここで聞く話題なのかよ。


48 名前: デフォルトの名無しさん 投稿日: 02/03/19 17:50
まずウイルスチェックすれ。



49 名前: デフォルトの名無しさん 投稿日: 02/03/19 18:53
誰かこのスレの過去ログ取ってる奴いないか?
いたら是非アップしてほしいのだが。


50 名前: デフォルトの名無しさん 投稿日: 02/03/19 19:33
>>46
- wait()系の関数で終了を待つ
- signal()などでSIGCHLDのハンドラにSIG_IGNを設定する
- sigaction()でSIGCHLDのフラグにSA_NOCLDWAITを設定する(Linuxではダメらしい)
どれでも可。他にも方法があるかも知れない。



51 名前: デフォルトの名無しさん 投稿日: 02/03/19 19:47
あ、これは子が先に死んでもzombieにならない方法だけど、親子の縁を
切るわけじゃないから子から見たppidは変わらないんだな。

>>50の後に更に子がfork()して孫を作って、子はすぐに死ぬようにすれば
残った孫はorphan processとしてinitが引き取ってくれるから、完全に
親子の縁を断ち切れるかな。



52 名前: デフォルトの名無しさん 投稿日: 02/03/19 19:50
仕事は子ではなく孫にやらせよう。
孫を産んですぐ死ぬ。


53 名前: デフォルトの名無しさん 投稿日: 02/03/19 19:57
孫は生めない


54 名前: デフォルトの名無しさん 投稿日: 02/03/19 20:17
そんなときは定番のUnix Programming FAQ。

[どうすればゾンビプロセスができることを防ぐことができますか? ]
http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC13

>>52
デーモン作るときの常套手段ですね。


55 名前: 5 投稿日: 02/03/19 21:16
forkは本屋で参考書を立ち読みしてきて理解しました。
"一回の呼び出しで二回帰る"こんなの自分の持っている本には書いてませんでしたよ・・・

プロセス関係のこと、なんか面白そうなのでいろいろ調べたいと思います。いろいろお世話になりました


56 名前: デフォルトの名無しさん 投稿日: 02/03/19 22:23
>>55
ちょっとまった!
そんなの聞いたこと無いぞ。<二回帰る


57 名前: デフォルトの名無しさん 投稿日: 02/03/19 22:33
>>55
子プロセス自体はmainから始まるんじゃなくてfork()の後から
実行するってだけだよ。その時に親の使っていたメモリ領域を
そっくりそのままコピーする(厳密には最近のOSはどれも
データセクションの書き換え時に初めてコピーするようになってるけど)。
違うのはfork()の戻り値だけ。


58 名前: デフォルトの名無しさん 投稿日: 02/03/19 23:02
制御系のC言語ってどんなのやるの?インラインアセンブラですか


59 名前: デフォルトの名無しさん 投稿日: 02/03/19 23:08
GUIがないだけ。
だまされるな。
*や*る*こ*と*は*同*じ*だ*



60 名前: デフォルトの名無しさん 投稿日: 02/03/19 23:14
>>58
ほぼ一緒。ただやたらとIOポートへのポインタを多用するだけ。
後、intが16ビットで懐かしい気分に陥ってみたり。


61 名前: 58 投稿日: 02/03/19 23:21
>>60
ありがとうございます。ポインタですか・・・




62 名前: デフォルトの名無しさん 投稿日: 02/03/19 23:27
>>58
インラインアセンブラもたまに使います。
CPUのレジスタに直にアクセスする場合等。
特に割り込み関係。
OS載ってれば別だけど。


63 名前: デフォルトの名無しさん 投稿日: 02/03/19 23:50
インラインアセンブラもなにもCは皮かぶったアセンブラだよ。
ポインタはCの中で特に強くアセンブラ的な要素をもったもの。

asmとcは文法は違うが近い、逆にcとc++は文法は似てるが全く別物。


64 名前: ビル・ジョブス 投稿日: 02/03/20 00:19
>>59
うー・・・現実ははかなり違うぞ・・・今でもROM64KB・RAM16KBなんて環境も
あるからな。
そこで、リアルタイムマルチタスクOS(ビル・ジョブス作)使ってる製品も
多いからな・・・
でも、最近はSH4だからGUIまで作っちまったよ。


65 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:23
>>64
ディスプレイがないのに・・・。

「0x0010000から1KBはボクちん専用VRAM〜♪」

かわいそうな人だ。


66 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:25
>>64
そんな小さな環境でどんなスケジューリングをやってたんですか?


67 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:28
>>64
( ゚д゚)ポカーン


68 名前: ビル・ジョブス 投稿日: 02/03/20 00:29
>>65
おまえなーSH4クラスの製品ならLCDくらい付いてる事を想像できないか?

この言葉、おまえに返すよ、
>かわいそうな人だ。


69 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:30
( ゚Д゚ )ポカーン


70 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:30
>>68
2行16文字のLCD上でGUI・・・かわいそうな人だ。



71 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:31
>>68
是非ともLCD付きのLSIチップを見せてください!


72 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:36
ビル・ジョブスは叩かれる伽羅なんですか?


73 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:38
>>72
そうです。
このスレはビルに混じれ酢付けるアフォを見物するスレなんです。


74 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:38
コテハンを叩くスレはここですか。
情けない。


75 名前: ビル・ジョブス 投稿日: 02/03/20 00:38
>>66
15レベルプライオリティー15、リスケジューリングタイム1ms、カーネルコード8KB、
TCB(タスクコントロールブロック)のRAM容量は実装依存。
もちろん各プライオリティーキューはラウンドロビン。
処理内容はLCD制御、キースイッチ制御、ネットワーク制御、ETC.。
ですが、なにか?


76 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:38
>>72
いや、技術はあるから叩いてもいいんです
それを跳ね返すだけの実力がある。


77 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:38
みんな食い付き良すぎだYO!!
ビル・ジョブスってのは、厨房のフリしてストレス発散したくなった時に使う
共有コテハンなんだからさぁ。
と言ってみるテスト。


78 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:39
>それを跳ね返すだけの実力がある。
プ


79 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:39
>>75
ありがと


80 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:41
>>77
正解


81 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:43
・・・


82 名前: ビル・ジョブス 投稿日: 02/03/20 00:47
こんなカンジのソースコード書いてますが、貴様らに理解できますか?

typedef struct TCB {
UCHAR id; /* My task ID */
UCHAR pid; /* Parent task ID */
UCHAR prior; /* Task Priority */
UCHAR cond; /* Task condition */
REGS *rg; /* Registers */
int wait; /* Sleep time (1ms*n) */
void *handle; /* Waiting msg/event/semaphore handle*/
int ewmode; /* Waiting event mode */
DWORD emask; /* Waiting event mask */
DWORD cputime; /* Used CPU time */
void *isp; /* Initial stack pointer */
struct TCB *prev,*next; /* Previous/Next TCB ptr */
} TCB;

typedef struct QUEUE {
TCB *head, *tail;
} QUEUE;

QUEUE ReadyQ[SYS_PRIORITY_MAX], SleepQ;

void add_ready_queue_head(TCB *t)
{
QUEUE *q = &ReadyQ[t->prior];
t->prev = NULL;
if (!(t->next = q->head))
q->head = q->tail = t;
else
q->head = q->head->prev = t;
}

void add_ready_queue_tail(TCB *t)
{
QUEUE *q = &ReadyQ[t->prior];
t->next = NULL;
if (!(t->prev = q->tail))
q->head = q->tail = t;
else
q->tail = q->tail->next = t;
}



83 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:51
お前がスゴイ!のはわかったって。


84 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:53
ビル・ジョイスはWin使いかよ。萎え〜
82のようなコードは生理的に受け付けない


85 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:54
さっきの環境から言ったら、pidとppidで1バイトで良さそうに
思うのですがどうでしょうか?>ビルさん


86 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:55
ビルは適当に検索して、それらしい単語やコードをコピペしてるだけだろ。
深いところに突っ込むと、ろくに答えないで煽り返してごまかすし。


87 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:55
笑いが止まらぬどころか鼻血がとまんねーよ、オイ



88 名前: デフォルトの名無しさん 投稿日: 02/03/20 00:56
うわぁ、さすがビル・ジョブスさん。さすがです。


89 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:00
TCB制御にint直打ちやNULLマクロつかッてんの初めて見た。
突っ込むときりがないんで、とりあえず、その心意気だけは買って褒め称えるスレにでもするか。



90 名前: 祭りだワッショイ! 投稿日: 02/03/20 01:01
真スレ勃ったばっかなのに波乱の予感・・・



91 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:04
ここは、ビルへのツッコミで1000を目指すスレになりました。


92 名前: ビル・ジョブス 投稿日: 02/03/20 01:05
>>85
idとpid・・・で1バイト?ってことは4ビットで15タスク・・・は無理でしょ。
というか拡張性無さ過ぎないか?ETC.の処理もあるし。

>>86>>87
おーおまえらよくもそこまで言ってくれたな・・・
まーいーや時間の無駄だから。


93 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:09
教科書通りのコード見せられてもなあ。
タスク制御なんてそこらのオタゲーPGでも書けるンだっつーの。
応用コードミセロヤ。


94 名前: 執行部 投稿日: 02/03/20 01:10
所詮ビルに故・日下部の代わりは無理か。
次はちゃんとしたのを送るとしよう。


95 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:14
>>94
次の刺客は林あたりをよろしく。


96 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:16
せめてエスピーテーメー級の骨太のやつ頼むぜ。



97 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:21
オイオイサガッテルヨ
ビルサンサイコー


98 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:22
TCB構造体には無駄があると思います。みなさんもそう思いますよね?
ビルさんの出してくれたデータ構造体の叩き台を再検討しましょう!
まずはそれから!!!次に処理。


99 名前: ビル・ジョブス 投稿日: 02/03/20 01:25
>>93
うーん・・・応用って言われてもなー・・・

こんなのでどう?おれの作ったメモリアロケーション(MMUなしバージョン)
だけど、文句しか言えないカワイソーナ貴様には3年がんばっても理解不可能だと
思うけど・・・

typedef struct MCB {
WORD check;
USHORT owner;
DWORD size;
struct MCB *prev,*next;
} MCB;

void *far_malloc(MCB **mh, MCB **mt, void *area, int area_max, int size)
{
MCB *m;
size = (size + (sizeof(int) - 1)) & ~(sizeof(int) - 1);
if (*mt && (size > area_max ||
(DWORD)(*mt)+((*mt)->size+sizeof(MCB)+size) >= (DWORD)(area)+area_max))
return (void*)NULL;
if (!*mh) {
*mh = (MCB*)area;
(*mh)->check = MCB_CHECK_CODE;
(*mh)->owner = Running->id;
(*mh)->size = size + sizeof(MCB);
(*mh)->prev = (*mh)->next = NULL;
*mt = *mh;
return (void*)((DWORD)(*mh)+sizeof(MCB));
}
m = (MCB*)((DWORD)(*mt)+(*mt)->size);
m->check = MCB_CHECK_CODE;
m->owner = Running->id;
m->size = size + sizeof(MCB);
m->prev = *mt;
m->next = NULL;
*mt = (*mt)->next = m;
return (MSG*)((DWORD)(m)+sizeof(MCB));
}



100 名前: ビル・ジョブス 投稿日: 02/03/20 01:26
int far_mfree(MCB **mh, MCB **mt, void *p)
{
MCB *m;
p = (void*)((DWORD)(p)-sizeof(MCB));
if (!*mh || ((MCB*)p)->check != MCB_CHECK_CODE) return NG;
((MCB*)p)->check = 0;
if (*mh == (MCB*)p) {
if (!(*mh = (*mh)->next)) *mt = NULL;
else (*mh)->prev = NULL;
return OK;
}
if (*mt == (MCB*)p) {
*mt = (*mt)->prev;
(*mt)->next = NULL;
return OK;
}
for (m = (*mh)->next; m; m = m->next) {
if (m == (MCB*)p) {
m->prev->next = m->next;
m->next->prev = m->prev;
break;
}
}
return OK;
}



101 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:26
>>99
素朴な疑問。普段からコメントは書かずにやってるの?


102 名前: ビル・ジョブス 投稿日: 02/03/20 01:29
>>101
ソースコードそのものが最高のコメント。


103 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:31
全然thread safeジャナイシヨ..
教科書通りのコードはツマラネエツゥノ


104 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:34
インデント汁!


105 名前: ビル・ジョブス 投稿日: 02/03/20 01:37
>>103
おまえアフォ?
割り込み禁止区間で動作するコードだよ!ドシロウトは黙ってな。
なにが「全然thread safeジャナイシヨ..」だよ。
テメー自身、言ってる意味分かってんのか?クソ小僧が・・・。


106 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:37
まじめに聞くが、メモリをページ単位で管理しようという気はないのか?

マルチタスクOS書いてるつもりだろうが、
それではアプリケーションごとに気を遣うべき項目が多すぎてやってられんぞ?
何世代も前の思想だ。

お前が凄いと思っているコードはおそらく凄くも何ともないし
教科書通りのコードなんて、誰だって読めば理解できるし書けるんだ。

そんなコード自慢するためにいままでPGやってたなら、全くの無駄足だったな。
少なくともここ20年は時代の流れに取り残されている。



107 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:46
ビルの宿題添削スレってここですか?


108 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:50
あんまりビルをいじめるなよ。


109 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:50
テスト


110 名前: ビル・ジョブス 投稿日: 02/03/20 01:52
>>106
おまえもアフォか?
>MMU無しバージョン
ってわざわざ書いただろ?

まーそれはテメーが真性アフォーKって事でいーとしても、
貴様の言う「ページ単位で管理」って仮想記憶含めてって事か?
それともプロテクションって事か?
制御系界では、確かにデバッグ中はOS毎逝ってしまうシーンは
良くあるが、それはプログラム設計やデバッグ手法でカバーできる。
ユーザープラットフォームじゃないからな。
ましてやリアルタイム応答が必要な分野で「シコシコ」ページを並べ替え
してられねーんだよ。「割り込み応答300ns以内」とか約束できるか?
ちなみにP4+WindowsXPでも無理だよ。理由は分かりますか?

もう寝るから、暇なヤツはカキコしとけ!


111 名前: デフォルトの名無しさん 投稿日: 02/03/20 01:55
胃の中の蛙だっけ?


112 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:00
RTだろうがタスク制御してるなら優先ページを決めてUICのカウントを減らすくらい、OS屋なら常識だろ。おい。
300ns程度で根を上げ点じゃネエヨ。

お前がいじってんのはOSをまねて作ったただの時分割タスク切り替えシステムだぼ家。


113 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:06
ビルさん、>>112さん。色々と勉強になります。


114 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:10
飽きたから寝る。

ビルサンスゴーイ


115 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:10
>>49過去ログあったよ。
だけどURLを貼り付けるとなぜか名無しのERRORが出る。
んーん。。
とりあえず一つだけで挑戦。
【C言語なら俺に聞け!】
http://piza.2ch.net/tech/kako/967/967985026.html


116 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:48
>>115
感謝! とりあえず1-6と、12 14はゲトしたYO。
後は過去ログ移行中かなあ・・・。


117 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:50
http://pc.2ch.net/tech/kako/1003/10034/1003418249.html
http://pc.2ch.net/tech/kako/1005/10058/1005811510.html
http://pc.2ch.net/tech/kako/1007/10072/1007272267.html


118 名前: デフォルトの名無しさん 投稿日: 02/03/20 02:51
あ、上手くいった!!


119 名前: 三村 投稿日: 02/03/20 03:23
>>111
食ったのかよっ!


120 名前: デフォルトの名無しさん 投稿日: 02/03/20 08:21
井の中の蛙


121 名前: デフォルトの名無しさん 投稿日: 02/03/20 10:24
>>117
サンクス。
取り逃した10, 11,13はhtml化待ちだーね。マターリ待つべさ…。


122 名前: Dennis Ritchie 投稿日: 02/03/20 12:31
Hello World!


123 名前: デフォルトの名無しさん 投稿日: 02/03/20 12:33
make love!


124 名前: デフォルトの名無しさん 投稿日: 02/03/20 12:35
>>123
make error:"love!" is not found.



125 名前: デフォルトの名無しさん 投稿日: 02/03/20 12:35
make: *** No rule to make target `love!'. Stop.


126 名前: デフォルトの名無しさん 投稿日: 02/03/20 12:36
考えることはみんな一緒w


127 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:03
            ヘ-+------+--+-----+ヽ_
          /:::|:::::::|:::::::::::::/::::::/::::::::::::::/:::::::/`\_
       / ̄\::::::|:::::/:::......-―――--..........__/:::::::::::::::\
   ┌ー ̄::::::::::::ヽ::|:::..-^ ̄            ^ ヽ、:::::::::\
   ヽ::::::::::::::::::::::::::::/                  \::::::::ヽ
    ヽ:::::::::::::::::::::::/             ::::       \:::::ヽ
    ヽ::::::::::::::::::/      ,,,,;;:::::::::::::::  ::::::::  ,,,,;;::'''''  \::::|_
     ):::::::::::::::|      "   __  ::::*:::::    __    ヽ:|::::ヽ
     /::::::::::::::::|       - '"-ゞ'-'  ::;;;;:   '"ゞ'-'    l::::::::ヽ
    /::::::::::::::::::|             ノ::ii:ヽ::          l::::::::::|
    |::::::::::::::::::::|            /::::;リ:::l::::         |::::::::::::|
    |:::::::::::::::::::::l           ...l::::;リ:::/::         /:::::::::::::|
    .|::::::::::::::::::::::l          . /:ア/:::        /:::::::::::::::i
    l:::::::::::::::::::::::::l          ./::`^:::::        /:::::::::::::::::/
    ヽ::::::::::::::::::::::::l         /::::::::::        /:::::::::::::::::::/
     /:::::::::::::::::::::::l        /:::::::::::::      /::::::::::::::::::::::/
     /::::::::::::::::::::::::i __-ー--=;;;::::::::::::::  ....::::/:::::::::::::::::::::::/
    ./:::::::::::::::::::::::::::i":::::::::::::::  ヾ─ 、/"ヽ:/::::::::::::::::::::::::::::l
     ヽ::::::::::::::::::::::丶::::::::::   /   il   .ヽ:::::::::::::::::::::::::::/
       \::::::::::::::::::::ヽ:::::::  /    l !    ヽ:::::::::::::::::::/
         ii::::::::::::::::::` -::-/     / .i     ヽ::::::::/
          ----- ̄丶/     lヽ       ヽ/
                /      l ^ヽ..      ヽ
                /      l   ヽ      .ヽ
               l       .l    ヽ      /
               丶      l     ヽ      .l
               ヽ      l     l     /
                ヽ___../      .ヽ---/
            うそはうそであると見抜ける人でないと
           (抜けるAAになるのは)難しい



128 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:07
スレ立て直すか?



129 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:34
いたたたたたたたたたた


130 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:39
メモ帳作りました。評価してください。
http://isweb42.infoseek.co.jp/computer/bkgm/memotest.exe


131 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:41
ふつーexe直リンするか?


132 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:42
>>130
大丈夫か?
怖くて実行できねえよ。


133 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:53
つーか、おまえのHPみれねえヨ。


134 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:55
ついでにいうとActiveXは萎えるから常にOff。
HPい変なもん貼り付けるんじゃないヨ


135 名前: デフォルトの名無しさん 投稿日: 02/03/20 13:55
ハァ? SCS?? 厨房氏ねよ!!
ってなんだ・・ハッキングされてんの?


136 名前: 130 投稿日: 02/03/20 13:57
>131-135
あなた方のIPを抜かせてもらいました。
晒されたくなければ謝罪してください。


137 名前: デフォルトの名無しさん 投稿日: 02/03/20 14:00
>>136
むしろ是非晒してください。お願いします(藁




138 名前: デフォルトの名無しさん 投稿日: 02/03/20 14:06
おーい、まだかー?


139 名前: デフォルトの名無しさん 投稿日: 02/03/20 14:09
ウォッチ板にはっちまうか?



140 名前: デフォルトの名無しさん 投稿日: 02/03/20 14:11
痛い>>136からIPアドレスを晒してもらうスレ。


141 名前: デフォルトの名無しさん 投稿日: 02/03/20 14:54
ぼくじぶんのあいぴいむかしからいちどでもぬかれてみたかったんだ


142 名前: 厨房 投稿日: 02/03/20 15:16
VC++6.0漏ってます。ソースで公開している不利ーそふとのコンパイルの仕方教えてください。


143 名前: デフォルトの名無しさん 投稿日: 02/03/20 15:17
>>142
当て字がむかつくから教えない。


144 名前: デフォルトの名無しさんk 投稿日: 02/03/20 15:21
gcc使いなさい。./configureで一発、かもよ


145 名前: 消防 投稿日: 02/03/20 15:30
142です。ちゃんと「垢でミック板」飼いました。おしえてちょー。


146 名前: デフォルトの名無しさん 投稿日: 02/03/20 15:31
>>145
当て字がむかつくから(以下同文)



147 名前: 初心者 投稿日: 02/03/20 15:37
VC++6.0持ってます。ソースで公開しているフリーソフトのコンパイルの仕方教えてください。


148 名前: デフォルトの名無しさん 投稿日: 02/03/20 15:38
普通ソースと一緒にメイク方法を書いたファイルが有るだろう?


149 名前: デフォルトの名無しさん 投稿日: 02/03/20 15:41
VC用に書かれたソースかどうか調べろ。
unix用とかBCC用だとそのままだとコンパイルできない場合もある。



150 名前: 初心者 投稿日: 02/03/20 15:45
VCでいけるみたいですが、unix用とかBCC用だとどうすればいいのですか?


151 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:01
makefileがunix用に書かれてたりしたら
cygwinとかについてるmakeコマンドを使う。

makefileがBCC用に書かれていたりしたら
BSD互換のmakeかBCCのmakeを使う。

ソースプログラムがunix用だったら、
cywginのgccとかでコンパイルしてみて動くことを祈る。

ソースプログラムがBCC用だったら、
あきらめてBCCをダウンロードしてインストールする。

最後の手段は、自分でがんばってソースとmakefileを書き直す。
だ。

がんばれ。

gccのOS/2ポーティングとかやったなあ、むかし。


152 名前: 初心者 投稿日: 02/03/20 16:05
>151さま ありがとうございました。やってみます。


153 名前: デフォルトの名無しさんk 投稿日: 02/03/20 16:05
つーか、PCーUNIX使いはれ。
WindowsはCの基礎を勉強するにはむいてない。
一ヶ月それで色々と試してからでも遅くない。


154 名前: デフォルトの名無しさんk 投稿日: 02/03/20 16:07
あ、ごめん。勉強する予定はないのね。失礼


155 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:10
>>150
VC持ってて、VCで行けるようなら気にするな。
unix用とかBCC用なら、unixとかBCCでmakeするんだよ。


156 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:12
でじゃびゅ…


157 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:22
自分で答えを予測する賢さと
初心者と言われぬ程度のプライドぐらいもて。


158 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:25
初心者と名乗らぬ程度のプライドぐらいもて。
と言いたい。


159 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:29
「初心者です」を恥ずかしいと思わなくなったら技術者としてお終いだな。
調べることすら放棄するのか?といいたい。



160 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:42
もっと OS の話しろ。


161 名前: デフォルトの名無しさん 投稿日: 02/03/20 16:46
ビルはコード漏洩の件について上司に見つかり、別室で待機中です。
パソコンも窓も電話もない、本ですら持ち込み禁止のアイデアルーム(自称)で
次の仕事を考えています。



162 名前: ビル・ジョブス 投稿日: 02/03/20 17:08
>>161
おいおい・・・おれが代表取締役だが・・・なにか?
次はシステムコールのソースでも見せてやろうか?
2ちゃんも落ちたなー・・・コード晒せるツワモノ居ないのか?


163 名前: デフォルトの名無しさん 投稿日: 02/03/20 17:11
代表戸締まり役 ビル・ジョブス


164 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:00
ここは珍コード晒すスレではありません。


165 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:00
どっかの本で見たようなコードを晒すところでもありません。


166 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:01
何をするところですか?


167 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:07
C言語に関する質問をしつつアホを晒すスレです。



168 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:07
>>166
ここが2ちゃんで無ければ、普通に質疑応答するスレなんだろうけどな・・・


169 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:36
>>168
2chではどんなスレッドでもネタや煽りが欠かせないってことか。


170 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:37
ネタや煽りをも許容するのです。
便所の落書きレベルの掲示板に仕事の質問するようなやつがいる時代ですから。


171 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:50
>>170
べつにええやん。
実務でも、便所の落書きレベルのコードしか書けないヤツも居るし・・・


172 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:58
便所の落書きひとつで、おまえらのプロジェクトの完成に貢献できるのなら
それはそれでよいのです。



173 名前: デフォルトの名無しさん 投稿日: 02/03/20 18:59
>>99
素朴な疑問

・WORD と USHORT ってなにが違うの?
・なぜ int はそのまま使うの?
・ポインタを DWORD にキャストしても大丈夫なの?
・アライメントは取らなくていいの?(8バイトとか16バイトとか)
・なぜ NULL を void* にキャストするの?
・MSG* ってなに?



174 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:08
>>173
・1バイトの変数か符号無しの1ビット整数か。
・WORD DWORD3をしらんのかと小一時間。
・構造体とか取ってる。
・NULL は 0とdefineされていてそのままではアドレスではないからです。
・知るか。



175 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:14
ビルからの愛のメッセージの詰まった構造体へのポインタにきまってんだろ。


176 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:22
すごいアホな質問ですが、聞いてください
ファイルから一行ずつ呼び出して、その行に特定の文字列を指定した文字列に変換するプログラムを作っているところです。
strstrでサーチしてアドレスを出すところまではいったんですが、その後の変換に何をつかっていいかわかりません。

#Include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LINE_SIZE 600
#define MAX_ENC_SIZE 64

void errmsg( char *s){
puts(err);
}

int main (int argc, char *argv[]){
char line[MAX_LINE_SIZE];
int line_len;
char from_str[MAX_ENC_SIZE];
char to_str[MAX_ENC_SIZE];
FILE *fp;
int n;
char *p;
if((fp = fopen( argv[1], 'w')) == (FILE *)NULL){
errmsg("file not found\n");
return(-1);
}
strcpy( from_str, argv[2]
strcpy( to_str, argv[3]);
while( fgets( line, MAX_LINE_SIZE, fp){
line_len = strlen( line );
if((p = strstr( line, from_str)) != NULL){
このあとがわかんないっすTT
一致する最初の文字のポインタを取得してもfrom_strをto_strに置き換えるやり方がわかりません。
どなたかヒントください。
お願いします。













177 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:26
とりあえず、
串に色違いの団子が5つ刺さってるとしてだな、
二番目と三番目の団子を皿の上にある、これまた串に刺さったままの三つの団子と
入れ替えて、六段重ねの団子を作りたいと思ったらだなあ、
おまえならどうする?



178 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:31
>>177
では虎を屏風から出してください。


179 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:34
>>176向けに書いたんじゃないの?


180 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:35
>>177
串の長さが足りなくて困る。


181 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:38
>>180
続けよう。串の長さが足りないときはどうするんだ?



182 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:39
>>181
ralloc()


183 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:40
>>181
諦める


184 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:42
>>182
よろしい。さらに続けよう。
では必要な串の長さはいくつかわかるな?



185 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:43
>>176
元のデータ=****−/////


−を888に置き換えたい。


データ置き場=/////
*****888



186 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:45
1行+(置換語−検索語)


187 名前: デフォルトの名無しさん 投稿日: 02/03/20 19:57
>>186
では、6段の団子を、新しい長さの串に並べてくれ。
先頭はもちろん、最初の串にあったはじめの方の二つの団子だ。



188 名前: デフォルトの名無しさん 投稿日: 02/03/20 20:02



strcpy(temp,p);
*p = '\0';
strcat(line,tostr);
strcat(line,temp);



189 名前: デフォルトの名無しさん 投稿日: 02/03/20 20:11
じゃあ、団子を引っこ抜かれて空になった串と、
6段重ねになった串と、二本の串が手元に残ったわけだ。

古い串は捨てて、新しい串を、お客様にお出しなさい。



190 名前: 176 投稿日: 02/03/20 20:12
>>177-188さん
こんなにも早いスレありがとうです(゜ーÅ)
できたら報告します。
できなくても報告します(;´Д`)b


191 名前: デフォルトの名無しさん 投稿日: 02/03/20 20:29
>>190
ttp://www.asahi-net.or.jp/~bx5k-wtnb/dosv/20.htm
VC用だが一番最後に置換関数がある。


192 名前: デフォルトの名無しさん 投稿日: 02/03/20 21:57
>>181
先生!新しい串がありませんでした!!


193 名前: デフォルトの名無しさん 投稿日: 02/03/20 22:36
fopen() を使ったファイルオープンに関してなんですけど、書き込み
モードでオープンしたとき (ただオープンしただけ)、以前の内容は
即座に破棄されるのでしょうか。それとも何かを書き込んだタイミングで
初めて破棄されるのでしょうか。またそのへんの振る舞いは規格で
厳密に規定されているんでしょうか。よろしくお願いします。



194 名前: デフォルトの名無しさん 投稿日: 02/03/20 22:38
規格はしらんがオープンに成功した時点で元ファイルはサイズ0になってるはずだぞ。
fcloseするまでは本当に0なのかどうかは保証されないだろうが。



195 名前: ビル・ジョブス 投稿日: 02/03/20 22:49
>>173
・WORD と USHORT ってなにが違うの?
WORDは16BITの値、USHORTは16BITの符号無し整数

・なぜ int はそのまま使うの?
SHとかってintのほうが効率がいーんだよ

・ポインタを DWORD にキャストしても大丈夫なの?
「ポインタの型のサイズを無視して演算したい」という意思表示。

・アライメントは取らなくていいの?(8バイトとか16バイトとか)
どこ?データならコンパイラに任せてるけど?
メモリーアロケーション?ならsizeof int;でしてるよ。
>size = (size + (sizeof(int) - 1)) & ~(sizeof(int) - 1);

・なぜ NULL を void* にキャストするの?
#define NULL (char*)0 // だから

・MSG* ってなに?
メッセージ構造体。
あーおれのOSはネットワーク透過なメッセージ通信がウリだから。

以上でいいー?


196 名前: デフォルトの名無しさん 投稿日: 02/03/20 22:50
>>194さん
サイズを0にしてからオープンするということでよろしいのですよね。
ありがとうです。



197 名前: 176 投稿日: 02/03/20 23:27
>>188さんのをヒントにしてやりますた。
後ファイルへ書き込めば完成のはずです(;´Д`)b
実はこれファイル操作のプログラム書くのはじめてなんですよ。
#Include <stdio.h>
#include <stdlib.h>
#include <string.h>

#define MAX_LINE_SIZE 600
#define MAX_ENC_SIZE 64

void errmsg( char *s){
puts(err);
}

int main (int argc, char *argv[]){
char line[MAX_LINE_SIZE];
int line_len;
char from_str[MAX_ENC_SIZE];
int from_len;
char to_str[MAX_ENC_SIZE];
char temp[MAX_LINE_SIZE]; /*一時的に保存する*/
FILE *fp;
int n;
char *p;
if((fp = fopen( argv[1], 'w')) == (FILE *)NULL){
errmsg("file not found\n");
return(-1);
}
strcpy( from_str, argv[2]);
from_len = strlen( from_str );
strcpy( to_str, argv[3]);
while( fgets( line, MAX_LINE_SIZE, fp){
line_len = strlen( line );
if((p = strstr( line, from_str)) != NULL){
strcpy(temp, ( p + from_len ));
*p = '\0';
strcat(line, to_str);
strcat(line, temp);
}
              //ここらへんにfprintfつかって書きこみ
}
}

れすくれたひとありがとうございます


198 名前: デフォルトの名無しさん 投稿日: 02/03/20 23:36
微妙な間違いはあるが、大体理解したようなのでよし。



199 名前: 170 投稿日: 02/03/21 00:26
>>198
ありがとう(゜ーÅ)


200 名前: デフォルトの名無しさん 投稿日: 02/03/21 01:50
func(unsigned char* cIn)となっている関数の引数ってどう与えればいいの?
文字列だっていうんで、初期化時に、
 unsigned char* cIn = "hoge";
とするとコンパイラにおこられるし、
 char* cIn = "hoge";
 func((unsigned char*) hoge);
とやるとコンパイラはとおるんだけど、このキャストはなんか間違ってる気がするし・・・


201 名前: デフォルトの名無しさん 投稿日: 02/03/21 01:53
charの宣言って0よりうえじゃないんだっけ。
unsignedつける必要あるのかなぁ

まちがってたらスマソ


202 名前: デフォルトの名無しさん 投稿日: 02/03/21 01:58
>>201
私もそんな気がするんですが、なぜかこの関数ではunsignedで定義されちゃってるんで、
どうにもならないんです。
自分ではこの関数を代えられないんで、なんとかunsigned charの文字列作って
送り込まないと・・・


203 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:00
/JオプションでOKだったりして(w

VCならそれはおそらくMBCSを期待してるだろうから

TCHAR, TCHAR *, const TCHAR *を渡せばよい。
func(_T("文字列"));
func((LPCTSTR)cIn);



204 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:00
#include <stdio.h>

void func(unsigned char *ustr)
{
    printf("%s\n", ustr);
}

void main()
{
    unsigned char *hoge = "test";
    func(hoge);
}

BCC55と、VC6でコンパイル無事に通った。
見当違いしてたらすまん。

>>201
charは、処理系依存のはず。


205 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:02
charの符号は、処理系によって異なると思われ。
キャストでいいんじゃネーノ?この場合。
そのfuncの中身次第だけど。


206 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:03
>>203
TCHARかぁ、なるほど。
今手元にないんでちょっと明日試してみます。
ありがとうございました。

#/Jオプションって何だろ・・・日本語モードかな?


207 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:09
funcはunsinged charのサイズに依存した処理をしてるみたいです。

だったらunsigned shortにしといてくれれば幸せだったのに・・・


208 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:11
>>204
あれ?うちもVC6なんですが、なにかオプションでも違うのかしら。
これもあすためしてみます。



209 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:21
サイズはsingnedもunsignedも同じ。
自分の指定する文字列がどっちでも同じ(0〜127の範囲)なら
そのまま通してしまうのも有りかも。

unsigned char *cin=(unsigned char *)"hoge";
では通らない?

ちなみにVC6だと、
unsigned char *cin="hoge";
では/W3までは文句言われなかった。


210 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:23
ただたんに拡張子が .cppなんでC++で処理されてるんだろ。
Cだったらcharの符号有り無しくらいで大げさな文句は言わない。



211 名前: デフォルトの名無しさん 投稿日: 02/03/21 02:45
>>200
>>205も書いてるけど、そのキャストは間違ってない。


212 名前: 204 投稿日: 02/03/21 02:47
>>210
お、*.cppにしたらVCが怒った。
解決法は既出なので省略。

ついでにBCCは問題なく通った。


213 名前: デフォルトの名無しさん 投稿日: 02/03/21 06:59
calloc関数はメモリーを確保したあとに、1バイトずつ0に初期化しているんですか?
それにしては速いと思うのですが。
実際、mallocで得た領域をmemsetで0に初期化するよりも遙かに速いです。


214 名前: デフォルトの名無しさん 投稿日: 02/03/21 11:11
>>213
うちの calloc.c (FreeBSD)は
if ( (p = malloc(size)) )
bzero(p, size);
てなってた。


215 名前: デフォルトの名無しさん 投稿日: 02/03/21 11:56
>>213
ttp://www.itboost.co.jp/c/c_08.php より引用
| システムに bzero 関数が存在する場合は、memset を
| そちらで置き換えたほうがプログラムが高速になります。

とのこと。


216 名前: レベル1 投稿日: 02/03/21 12:36
今日の昼にCを始めたんだけど、早速挫折。
printfとscanfを使って、一年の秒数を計算するプログラムを組んだけど
ありえない数字が出てくる。なんで?
#include <stdio.h>
int main(void)
{
int Days;

printf("一年は何日ですか?");
scanf("%d",&Days);

printf("一年は%d秒です。",Days*24*60*60);
return 0;
}
うるう年も考慮した俺的に渾身の作なんだけど、何がいかんのかわからん。
ネタじゃないんで、レベル1だけど誰か教えてちょんまげ。
int型に入らんのかとも思ったけど32ビットどうのこうので、有効内だと思う。
あと、void ッテ何?


217 名前: デフォルトの名無しさん 投稿日: 02/03/21 12:43
>>216
Cで変数名に大文字使うのやめなさい。

で、どんな数字が出てくる?
ぱっと見変なところ無いけど。

後、voidは無しってことだ。取りあえずは。


218 名前: レベル1 投稿日: 02/03/21 12:47
実行すると、
13184秒って出る。
voidはまぁ気にせんでええのね。変数名は小文字が吉と。メモメモ・・・


219 名前: デフォルトの名無しさん 投稿日: 02/03/21 12:51
Daysにどんな値が入っているかを調査せよ。
つーかscanfはレベル30くらいで使うもんだが。


220 名前: デフォルトの名無しさん 投稿日: 02/03/21 12:54
>>218
そりゃintが16bitのコンパイラ使ってるんでは?


221 名前: レベル1 投稿日: 02/03/21 12:54
調査?
どうやって?レベル1なのですまそ。
printfでDaysを表示すればいいのかな?やってみる


222 名前: デフォルトの名無しさん 投稿日: 02/03/21 12:56
>>221
int days -> long days;

printf("%d ->%dl


223 名前: デフォルトの名無しさん 投稿日: 02/03/21 12:56
>>216
> うるう年も考慮した
ちょとワラタ。ゴメン。
で、13184 ってのは、365*24*60*60 を 2^16 で割った余り。
つまり、そのコンパイラでは int は 16ビットだということ。
Days を long に、“scanf("%d",〜”を“scanf("%ld",〜”に変えてやってみ。


224 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:00
>>223
printfのほうだろ。



225 名前: レベル1 投稿日: 02/03/21 13:00
なるほど。32ビットとか16ビットとかはコンパイラによって違うのね。
LSIのフリーのを使ってるので。
ちなみにDaysを表示したら365だった。
これからlong型でやってみる。


226 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:01
>>218
コンパイラなに使ってんだ?
変えたほうがよくないか?


227 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:09
変数大文字は俺は容認だがなぁ。


228 名前: 173 投稿日: 02/03/21 13:10
>>195
先生わかりません。

>・WORD と USHORT ってなにが違うの?
>WORDは16BITの値、USHORTは16BITの符号無し整数
う〜ん、でも
> WORD check;
> USHORT owner;
この部分の使い分けがよくわからないんです。

>・なぜ int はそのまま使うの?
>SHとかってintのほうが効率がいーんだよ
なるほど!

>・ポインタを DWORD にキャストしても大丈夫なの?
>「ポインタの型のサイズを無視して演算したい」という意思表示。
typedef unsigned char byte_t;
(byte_t*)m + size
のようにした方がポインタ安全な気がするのですが間違いでしょうか?

>・アライメントは取らなくていいの?(8バイトとか16バイトとか)
>どこ?データならコンパイラに任せてるけど?
>メモリーアロケーション?ならsizeof int;でしてるよ。
>>size = (size + (sizeof(int) - 1)) & ~(sizeof(int) - 1);
far_malloc() で得たメモリに double や long double などを格納してアドレ
スエラーが起こる処理系や、DMA 転送を行って DMA が逝ってしまうハードウェ
アがあるかもしれませんが、気にしすぎでしょうか?

>・なぜ NULL を void* にキャストするの?
>#define NULL (char*)0 // だから
(*mh)->prev = (*mh)->next = NULL;
はコンパイルエラーや警告は出ないのでしょうか?

>・MSG* ってなに?
>メッセージ構造体。
>あーおれのOSはネットワーク透過なメッセージ通信がウリだから。
far_malloc() はメッセージ構造体を専用に確保するためのものだったんですね!



229 名前: レベル1 投稿日: 02/03/21 13:15
でけた。
Daysもdaysに直した。
ふと疑問に思ったんだけど、int(long)型で、daysともう一つなんか変数作って
そこに入力した一年の日数を入れる必要はない?そんで
days=作った変数*24*60*60;を最後のprintf関数の前に入れる。
そんでpirntf("一年は%ld秒です",days);みたいな。


230 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:17
>>229
それでも良いよ。

後、

days *= 24 * 24 * 60;

と言う技も使える(あまり推奨しない)


231 名前: レベル1 投稿日: 02/03/21 13:19
両方動く事は確認したけど、どっちがいいとかあったら教えてちょんま
あと、できたので、教えてくれた人達ありがとう。


232 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:37
どっちがいいかといえばその三の

int secs;

secs = days * 24 * 24 * 60;

だろ。
そういえば、閏秒には対応しないの?


233 名前: レベル1 投稿日: 02/03/21 13:46
それは変数名からそれがいいってことだよね?
ようはdays以外にもういっこ変数作るが吉と。
うるう秒ってのが、俺自身理解できてないから無理。


234 名前: デフォルトの名無しさん 投稿日: 02/03/21 13:59
printf("一年は%ld秒です。 閏秒がある年なら1を足してください。",days*24*60*60);


235 名前: デフォルトの名無しさん 投稿日: 02/03/21 14:07
>>233
うるう秒は、気象庁が突然発表する。なので予測不可能。
>>234
ワラタ。けど現実的。


236 名前: デフォルトの名無しさん 投稿日: 02/03/21 14:15
まぁ普通はそこまで必要無いわな。

ちょっと気になっただけなんだけど、過去の閏秒の情報って何処かから取得出来る?
現時点の情報なら、GPSか電波時計監視すれば出来そうなもんだけど。


237 名前: デフォルトの名無しさん 投稿日: 02/03/21 14:42
>>236
1個めのリンクに載ってたよん。
http://www.google.com/search?hl=ja&ie=Shift_JIS&oe=Shift_JIS&q=%82%A4%82%E9%82%A4%95b&lr=lang_ja


238 名前: デフォルトの名無しさん 投稿日: 02/03/21 14:46
>>237
ありがと。
動的に取得する方法無いかなと思ってたんだけどね。
もう少しリンク辿ってみます。


239 名前: デフォルトの名無しさん 投稿日: 02/03/21 14:54
>>238
動的に取得するには、ちきゅーの軌道を精密に計算すれば良いのかも。


240 名前: デフォルトの名無しさん 投稿日: 02/03/21 15:01
>>239
それで算出出来るなら、予報で何年も先まで出るでしょ。


241 名前: 239 投稿日: 02/03/21 15:40
>>240
いやはや、まったくもって。


242 名前: デフォルトの名無しさん 投稿日: 02/03/21 15:42
原子時計がいきなりずれる。


243 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:07
ここで出されるコードってインデントが入ってなくて見にくいので、
行頭のスペースとタブを「&nbsp;」に書き換えるコード作ってみた。
どっか変なところある?

#include <stdio.h>
#include <ctype.h>

#define LINESIZE 1024
#define TABSIZE 4
#define SPACESIZE 1

int istabsp(int);

int main(void){

    char line[LINESIZE];
    int line_ptr;

    int tabsize = TABSIZE;
    int spacesize = SPACESIZE;

    while(fgets(line, sizeof(line), stdin) != NULL){
        for(line_ptr = 0; 0 != istabsp(*(line + line_ptr)); ++line_ptr){
            if(*(line + line_ptr) == '\t'){
                while(0 < tabsize--){
                    fprintf(stdout, " ");
                }
            }else if(*(line + line_ptr) == ' '){
                while(0 < spacesize--){
                    fprintf(stdout, " ");
                }
            }
            tabsize = TABSIZE;
            spacesize = SPACESIZE;
        }

        fprintf(stdout, "%s", line + line_ptr);
    }

    return 0;
}

int istabsp(int c){
    if(c == '\t' || c == ' '){
        return 1;
    }else{
        return 0;
    }
}

このレス自身もこのプログラムとおしてみた。


244 名前: 243 投稿日: 02/03/21 16:10
いちおううまくいったみたいね。
使いたい人は使ってくれ。
っつーかお前らコード見にくいので使って下さいお願いします。


245 名前: 243 投稿日: 02/03/21 16:17
<ctype.h> は必要なかったね。
istabsp のところで、書き直す前 isspace 使ってたときのなごりじゃ。スマソ


246 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:20
漏れは、コピペするときにemacsで置換してる。


247 名前: 243 投稿日: 02/03/21 16:28
重大なバグをハケーソ。(W

最奥の while ループ(2か所)の中にある、

fprintf(stdout, " "); --> fprintf(stdout, "&nbsp;");

です。
投稿したときに "&nbsp;" が " " に変換されてしまった。


248 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:40
なんか最近異様にこのスレ書き込まれるのが早いですね。
Part12ですらdat落ちしてないよ。


249 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:40
お?   とかは大丈夫なのか。
  & "


250 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:42
皆逝き急いでるんだよ


251 名前: 249 投稿日: 02/03/21 16:47
>>243
すまん便乗。どうやらいけるみたいなので、作ってみた。
先頭しか変換しない、って仕様が謎だったので全置換。
先頭以外を置換しない理由ってあるかな?

#include <stdio.h>

#define TABSIZE 4

void encode_putchar(char c);

int main(int argc, char *argv[])
{
    FILE *fp;
    char c;

    fp = fopen(argv[1], "r");

    while (1){
        c = fgetc(fp);
        if (feof(fp)) break;
        encode_putchar(c);
    }

    return 0;
}

void encode_putchar(char c)
{
    int i;
    switch (c){
        case ' ':
            printf("&nbsp;");
            break;
        case '\t':
            for(i = 0; i < TABSIZE; i++){
                printf("&nbsp;");
            }
            break;
        case '&':
            printf("&amp;");
            break;
        case '"':
            printf("&quot;");
            break;
        default:
            putchar(c);
            break;
    }
}


252 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:50
>>248

「ビル・ジョブス と(ヤツをかまう)愉快な仲間達」が
多大なる貢献をしていると思われる。(W


253 名前: デフォルトの名無しさん 投稿日: 02/03/21 16:56
>>251
だめじゃん。


254 名前: 243 投稿日: 02/03/21 16:58
>>249

> 先頭しか変換しない、って仕様が謎だったので全置換。
> 先頭以外を置換しない理由ってあるかな?

きちんと調べてないけど、投稿時に、

「行頭のタブ」と「行頭のスペース」は削除、
「その他の場所にあるタブ」と「その他にある一個以上のスペース」はスペース一個に変換。
される模様。

その他にあるかな。

とにかく行頭のインデントさえあればいいと俺は思った。


255 名前: 243 投稿日: 02/03/21 17:02
ちなみに、
stdin と stdout を使っているのはリダイレクトを想定してるから。

./program < hogehoge.c > hogehoge.txt

とか。


256 名前: 251 投稿日: 02/03/21 17:04
>>253
あら…何処がダメ?俺からは無事できてるように見えるけど…。
エラーチェックとかだったら許して。

/*改良版*/
#include <stdio.h>
void f(char c){int i=4;switch(c){case ' ':printf(" ");break;case '\t':
while(i--)printf(" ");break;case '&':printf("&");break;case '"':
printf(""");break;default:putchar(c);break;}}void main(int i, char **v){
FILE*fp;char c;if((fp=fopen(v[1],"r"))!=NULL) while ((c=fgetc(fp))!=EOF)f(c);}


257 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:04
どうせやるならクリップボード監視しろよ


258 名前: 251 投稿日: 02/03/21 17:05
うげ、コピーするもの間違えたすまん逝ってくる。

#include <stdio.h>
void f(char c){int i=4;switch(c){case ' ':printf("&nbsp;");break;case '\t':
while(i--)printf("&nbsp;");break;case '&':printf("&amp;");break;case '"':
printf("&quot;");break;default:putchar(c);break;}}void main(int i, char **v){
FILE*fp;char c;if((fp=fopen(v[1],"r"))!=NULL) while ((c=fgetc(fp))!=EOF)f(c);}


259 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:06
>>254
投稿時じゃなくてブラウザの表示時な。
HTMLをインデント整えて書けるようにそうなってるんだと思うけど。

>>256
ここ7行スレかよ!!。(w


260 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:06
ついでに、かちゅに組み込んでくれ。


261 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:07
これって

a<TAB>b
aa<TAB>b
aaa<TAB>b
aaaa<TAB>b

bのカラムはそろうの?


262 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:13
そんなもんWEBではそろえなくてヨシ。



263 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:14
>>256
七行かぶれかっこわるい。
あれはあのスレでやるからかっこいいんだ。


264 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:14
なんで


265 名前: 243 投稿日: 02/03/21 17:25
>>251

'"' -> '\"'

とか。


266 名前: デフォルトの名無しさん 投稿日: 02/03/21 17:34
>>251 " もエスケープしないといけないんだっけ。コンパイルできたから
良いかと思ってたよ。…逝ってきます。


267 名前: 243 投稿日: 02/03/21 17:52
>>261
「これ」ってのが何指してるのかわからんけど、
「この板」を指すものとして、実験してみた結果は以下。

a b
aa b
aaa b
aaaa b


タブ一個はスペース一個になるみたいね。

>>266
イってらっしゃい。早く帰って来てね。(W




268 名前: デフォルトの名無しさん 投稿日: 02/03/21 19:32
Perl なら一行で済むな・・
while (<>) { s/\s/ /g; print; }

Perl をローカルで動かせるなら
perl -e "while (<>) { s/\s/ /g; print; }" < 入力ファイル
で行けるから試してみそ。






269 名前: 268 投稿日: 02/03/21 19:35
しもた。二重にミスってた。訂正。

Perl のスクリプトとしてファイル用意するなら。
while (<>) { s//&nbsp/g; print; }

ワンライナー
perl -e "while (<>) { s/ /&nbsp;/g; print; }" < 入力ファイル



270 名前: 918 投稿日: 02/03/21 19:44
またミスってた・・分かってもらえるとは思うけど。

Perl のスクリプトとしてファイル用意するなら
while (<>) { s/ /& /g; print; }

ワンライナーは >>269 でいい。

鬱だな、しかし。



271 名前: 仕様書無しさん 投稿日: 02/03/21 19:45
shでsedつかえばいっしょ



272 名前: 268 投稿日: 02/03/21 19:53
>>271
そりゃ、あればね。
Windowsな人だったら、CGIの確認用にローカルでperl入れてる人もいるかもしれないし、
ちょっとは現実解かなと思ったのみで。



273 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:00
regexでなんとか置換できないかと思ったんだけど、
調べてるうちに、漏れも>>271と同じ結論に達して、結局萎えた。


274 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:19
  test


275 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:21
あ、みんなソースって でそろえてたのか…。
漏れはタブ1個=全角スペース2個でそろえてたよ…。


276 名前: 275 投稿日: 02/03/21 21:21
&nbsp;が消えた。鬱。


277 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:28
ていうか、ソースをここに書き込む前にテストしろよ…


278 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:34
 
&nbsp
&amp;nbsp


279 名前: デフォルトの名無しさん 投稿日: 02/03/21 21:43
vi で %s/ / /g
してから Ctrl+A, Ctrl+V でいいじゃん。


280 名前: デフォルトの名無しさん 投稿日: 02/03/21 23:40
外部リンケージはプログラム全体で共有されえる。
内部リンケージは翻訳単位にユニーク。
リンケージを持たない(自動変数など)はブロックにユニーク。

でいいのですか?


281 名前: デフォルトの名無しさん 投稿日: 02/03/21 23:44
>>279
>  してから Ctrl+A, Ctrl+V でいいじゃん。
こんなこと言う人はvi使いじゃないです。
vim6でmswin.vimをsourceしてたとしても邪道す。

でもおれはカーソルキーを使います。


282 名前: 280 投稿日: 02/03/22 00:57
教えてください〜


283 名前: デフォルトの名無しさん 投稿日: 02/03/22 02:24
質問です。
UNIXで(他は特にためしてないですが)fopenを連続で行うと
256回目近辺で失敗してしまいます。
ディスクリプタの数は設定して増やしているのですが
fopenの数とは異なるようです。
openでfopenの代わりとなる関数を作成するしかないのでしょうか?
ソケットをそれなりに使用していると1つもfopenが成功しないという
状況が発生してしまいます・・・



284 名前: デフォルトの名無しさん 投稿日: 02/03/22 02:26
OS名もっと詳しく


285 名前: デフォルトの名無しさん 投稿日: 02/03/22 02:28
>>284
自分へのレスと受けてよろしいのでしょうか・・・?
Solaris7です。
よろしくおねがいします。


286 名前: デフォルトの名無しさん 投稿日: 02/03/22 03:48
>>285
ためしに、open()が257回以上呼べるのか調べてみるべし。


287 名前: 286 投稿日: 02/03/22 03:55
>>286
自己レス。でもやっぱり1プロセスから開けるFDの限界は
256のような〜〜。
>>283のいう「FD増やした」てーのは、OS全体で開ける数
増やしたっつーことじゃないかな?


288 名前: 仕様書無しさん 投稿日: 02/03/22 09:30
>>234-235
微妙に違うと思われ ヽ(;´д`)ノ
閏秒は、2秒足したり1秒引いたり2秒引いたりもするっぽい。



289 名前: 仕様書無しさん 投稿日: 02/03/22 09:34
>>200
てか、引数の定義はともかく、内部的な処理の仕様はどうなん?
具体的に言えば、
引数の型の定義が unsigned char* なのだからして、
呼び出し側で const unsigned char* を与えちゃってるのは、どうよ?


290 名前: デフォルトの名無しさん 投稿日: 02/03/22 09:57
>>287
ご参考まで
http://www.minq.se/products/pureload/doc/html/gettingstarted/gettingstarted8.html
>To increase number of file descriptors allowed per
>process (256 is default in Solaris 8). Use the ulimit
>or limit command in the shell you are using to start
>manager and tasks space server. To be able to increase
>number of file descriptors to more than 1024, you must
>modify the /etc/system file:
>
># set hard limit on file descriptors
>set rlim_fd_max = 4096
># set soft limit on file descriptors
>set rlim_fd_cur = 1024
>
>These settings will increase the default to 1024 with a max
>limit of 4096.
>
>Note: The system must be rebooted to initiate changes in /etc/system.



291 名前: デフォルトの名無しさん 投稿日: 02/03/22 11:37
大した事じゃなんですが質問します。

よく、DWORDからWORDに落とす時など

WDORD dwBefore = 0x12345678
WORD wAfter = (WORD)dwBefore & 0xffff;

とか0xffffでANDとったりしますが
これって必要な物なのでしょうか。

取りあえず無くてもVCの場合はきちんと動きますが。


292 名前: 仕様書無しさん 投稿日: 02/03/22 12:23
>>291
>取りあえず無くてもVCの場合はきちんと動きますが。

てか、境界はコンパイル時のオプション次第でしょ。


293 名前: 287 投稿日: 02/03/22 13:42
>>290
おぉ、すごい。参考になりますた。


294 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:06
>>243 >>249
今更だけどさらに便乗。
カラムを揃えてみたけど、サイズ膨れすぎ(;´Д`)

#include <stdio.h>

#define NBSP    "&nbsp;"
#define AMP     "&amp;"

#define TABSIZE     4

int main(void)
{
    int i;
    int c;
    int space;
    int length = 0;

    while ((c = fgetc(stdin)) != EOF) {
        switch (c) {
            case '\t':
                if (length >= TABSIZE)
                    space = TABSIZE - length % TABSIZE;
                else
                    space = TABSIZE - length;
                for (i = 0; i < space; i++)
                    fputs(NBSP, stdout);
                length += space;
                break;
            case ' ':
                fputs(NBSP, stdout);
                length += 1;
                break;
            case '&':
                fputs(AMP, stdout);
                length += 1;
                break;
            case '\n':
                fputc(c, stdout);
                length = 0;
                break;
            default:
                fputc(c, stdout);
                length += 1;
                break;
        }
    }
    return 0;
}


295 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:07
>>292
291のコードで「境界」がなんの関係があんの?


296 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:23
WindwosXPでC言語プログラムをしていてHTMLの"SUBMIT"などのタグを取得するにはどうすればよいのでしょうか?
昔自動垢取りソフトなどがありましたがああいうものを作る場合どうすればよいのでしょうか?
"tab"キーを押せばアクティブな領域?画移動するので移動事態は特に問題ないと思うのですがタグを取得できません
ここなら”書き込む”という領域を押したようにしたいのです


297 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:36
>>294
#define LT "&lt;"
#define GT "&gt;"
も考慮しる!

つうか sed を使うという結論になったんでは?


298 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:41
>>296
タグを取得ってどういうこと?


299 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:43
cgi getしてパースしてpostしたいんだろうが鼬飼い


300 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:46
イタチってこう書くのか...


301 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:49
>>299
さん
正直意味わかりません
いたちの漢字はinfoseekの辞書で読めました...
タグ取得しなくてよいのでしょうか?


302 名前: 301 投稿日: 02/03/22 14:51
板違い
了解です
と、言ってもどこに行けば?
探して移動します


303 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:51
>>302
初心者板が相当


304 名前: デフォルトの名無しさん 投稿日: 02/03/22 14:57
アビバ逝け


305 名前: デフォルトの名無しさん 投稿日: 02/03/22 15:02
阿鼻馬池


306 名前: デフォルトの名無しさん 投稿日: 02/03/22 15:42
3日で300レスとは・・・
さすがリッチィだけはある。


307 名前: デフォルトの名無しさん 投稿日: 02/03/22 16:23
なんでGPLなソフトはpthread中心に書き換えようとしないのでしょうか?


308 名前: デフォルトの名無しさん 投稿日: 02/03/22 16:24
というかPC-UNIXで去年でたPOSIXをサポートするつもりはあるんでしょうか?


309 名前: デフォルトの名無しさん 投稿日: 02/03/22 16:28
thread unsageな関数が沢山あるとしても、それらを扱う専用のスレッドを
用意すれば事足りると素人は思ってしますのですがどうでしょうか?


310 名前: デフォルトの名無しさん 投稿日: 02/03/22 16:51
お前が書け


311 名前: デフォルトの名無しさん 投稿日: 02/03/22 18:44
(void*)0
これをヌルポインタとしてはいけないの?


312 名前: デフォルトの名無しさん 投稿日: 02/03/22 18:46
C FAQ嫁。
それでもわからなかったらまた来い。


313 名前: デフォルトの名無しさん 投稿日: 02/03/22 19:47
>>308
%nm /lib/libpthread.so.0 | grep [^_]pthread
これだけでもかなりあると思うが。


314 名前: 279 投稿日: 02/03/22 20:59
>>281
分かったよ。じゃあ V して G して y して :new して p すれば
オーケーか? 操作的にはどちらも一瞬で出来るが。


315 名前: デフォルトの名無しさん 投稿日: 02/03/22 23:04
プログラム全くの初心者なのですが、Cを独学で勉強しようと思ってます。
やっぱり参考書などを見ながら勉強するんですよね?
やはり数をこなすしかないでしょうか?
いきなり32ビットのをやるより、ちゃんと16ビットのからやってくべきですよね?


316 名前: デフォルトの名無しさん 投稿日: 02/03/22 23:06
>>315
んなこたーない


317 名前: デフォルトの名無しさん 投稿日: 02/03/22 23:06
>>315
Win32の話と見た。


318 名前: デフォルトの名無しさん 投稿日: 02/03/22 23:28
独学一番。


319 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:23
>>315
コンソールプログラムから始めるのが普通だな
http://pc.2ch.net/test/read.cgi/tech/1016722820/
で本探して嫁


320 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:23
独習C これ最強


321 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:24
C++やれ
 ++


322 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:45
>>315
どうせまともなプログラマになるのは、数年先なんだから
いっそのことC#でもやったら?


323 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:48
C言語って変数の宣言ってどうやるの?


324 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:50
int a;


325 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:51
もうちょいまじめにかく

void main()
{
int a;

a=5;

printf("%d\n",a);
};
てな感じ

つーかそれも知らないなら、ネットやってるどころじゃないぞ


326 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:51
なに?intって? なんかの略?


327 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:53
記憶クラス 型 識別子;


328 名前: 323 投稿日: 02/03/23 00:54
cやったことないから・・・
古い言語やってるもので。

a を宣言して5を割り当てて
そのあとなにしてるの?


329 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:54
それを知ってどうしようというのだ?


330 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:54
>>326
こんなところで聞いてないでK&Rを読め。
やるなら早く読め、嫌なら帰れ。


331 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:54
>>328
print ってゆーくらいだから 多分表示してるんだろーなー

くらいの想像力はないの?


332 名前: 323 投稿日: 02/03/23 00:56
>>331
そんぐらい想像つくわ
厳密に聞いてんの


333 名前: デフォルトの名無しさん 投稿日: 02/03/23 00:58
>>323
教えてもらっててその態度はいかがなものかと


334 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:00
整数(integer)型変数aを宣言し
aの領域に5をピットコピーし
書式化出力関数printfにフォーマット文字列と、
aの内容5を値で渡す。

制御は端から落ちてプログラムを抜けOSに返る。


335 名前: 323 投稿日: 02/03/23 01:00
スマソ・・・


336 名前: 323 投稿日: 02/03/23 01:02
printfは関数なのね。なるほど。
しかし、「制御は端から落ちてプログラムを抜けOSに返る」
このフレーズがいまいちピンとこないです。
もう少し詳しく教えていただければと・・・




337 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:07
そして5分が経過した


338 名前: 323 投稿日: 02/03/23 01:08
そして6分が・・・


339 名前: 323 投稿日: 02/03/23 01:09
そして7分が・・・・・


340 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:09
>323
ネタだよね。
それとも天然?

334よりつっこんだ話になるとそれはもうCの話じゃない。
そういうことを考えなくてすむから高級言語というのだ。

>制御は端から落ちてプログラムを抜けOSに返る。
この表現はわしもよくわからんが雰囲気はつたわる。


341 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:10
NetBSDのソースだけ欲しいのですがどこで手にはいるんでしょうか?


342 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:10
ソースはカーネルのソースです、ブルドック出されても困です。


343 名前: 323 投稿日: 02/03/23 01:11
天然でごわす。


344 名前: 336 K&R呼んでね♪ 投稿日: 02/03/23 01:12
戻り値無しの関数は制御が定義の閉じ大カッコまで行くと
勝手に制御が返る。
明示的に書くと
void main(void)
{
 int a;
 a = 5;
 printf("%d\n",a);
 return;
}
本当はmainは状態を返したほうがいいので
int main(void)
{
 int a;
 a = 5;
 printf("%d\n",a);
 return 0;
}


345 名前: 323 投稿日: 02/03/23 01:19
voidはどういういみでせう?
お馬鹿でスマソ・・・


346 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:24
>>345
全部訊くつもりかよ。


347 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:26
そういう初歩的な質問は、レス消費してしまうので、
C言語をyahooで検索して、C言語のサイトにいった方がいいと思う
こんな夜中に急に気になったのかい?


348 名前: K&R見れつーんだよ 投稿日: 02/03/23 01:27
ここは1から10まで手解きしてくれるお勉強スレではありません。
自分でなんとかしろっつてんだろゴルァ( ゚д゚)


349 名前: オドオドとした態度の小心者で、オタク人間 投稿日: 02/03/23 01:49
Cプログラマには
int main()派とvoid main()派がいるように思います。
int main()派の理屈はわからんでもないんですが、
void main()派の人はなぜvoid にこだわるのでしょうか?
教えてください



350 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:50
宗教戦争に参戦することにのみ
生きがいを見出しているからです。


351 名前: ごめんなさい 投稿日: 02/03/23 01:51
345だけみて書きこんでしまいました。死にます。



352 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:53
> int main()派の理屈はわからんでもないんですが、

int main()派の理屈を教えてください。



353 名前: デフォルトの名無しさん 投稿日: 02/03/23 01:53
>>349
戻り値を返す先が無い処理系を使っているからです。


354 名前: デフォルトの名無しさん 投稿日: 02/03/23 03:32
>>353
例えばどんな処理系ばあるんでしょうか?


355 名前: デフォルトの名無しさん 投稿日: 02/03/23 03:36
>>354
OSがないとか


356 名前: デフォルトの名無しさん 投稿日: 02/03/23 03:39
>>355
組み込みってmain関数から始めるんですか?

カーネルにはmain関数なんて当然ないですよね。
main関数自体OSを前提とした関数だと思うんですが
この考えは間違ってますか?


357 名前: デフォルトの名無しさん 投稿日: 02/03/23 03:52
main関数そのものはカーネルにはないだろうなあ。俺の脳内妄想カーネルにはあるけど。
mainが実行開始エントリという意味上のものであるなら、
カーネルにもmainはある。


358 名前: デフォルトの名無しさん 投稿日: 02/03/23 05:28
fopenでNULLが返ってきた場合もfcloseするべきですか?


359 名前: デフォルトの名無しさん 投稿日: 02/03/23 06:04
必要なしです。


360 名前: デフォルトの名無しさん 投稿日: 02/03/23 06:11
fclose(NULL)でクラッシュする処理系、昔あろました。


361 名前: デフォルトの名無しさん 投稿日: 02/03/23 08:32
あろました。


362 名前: 353 投稿日: 02/03/23 09:16
>>354
355正解。DSPです。
仕込めばmain以外から始める事も出来るけど、通常はmainから始まります。
実際は割り込みベクタ0から始まって、そこからmain呼んでるだけなんだけど。


363 名前: デフォルトの名無しさん 投稿日: 02/03/23 09:41
fclose は成功すると 0 を返し、失敗すると EOF を返すそーですが、
失敗とゆーことは、ファイルはまだ閉じられていないんでしょーか?
そのファイルを閉じるにはどうすれば?


364 名前: デフォルトの名無しさん 投稿日: 02/03/23 09:44
>int main()派の理屈を教えてください
ANSIがそうなっているからだろ。
ANSIに準拠していないCなら何も返さなかったりint以外を返してもいいんだろうけど。
ついでにint main(void)か int main(int argc, char **argv)ね。

逆にvoid main()の理屈がわからんぞ。
たぶん本にそう書いてあったからというくらいだとおもうけど、、。


365 名前: デフォルトの名無しさん 投稿日: 02/03/23 11:15
"w"の場合はfcloseの成功を確認する必要があるねえ。
"r"でオープンしたやつのfcloseは気にしたことないなあ。


366 名前: デフォルトの名無しさん 投稿日: 02/03/23 11:18
C99ではvoid main()もありうるようですが
void main()派はC99を根拠にしてるわけじゃないに1200リッチー


367 名前: デフォルトの名無しさん 投稿日: 02/03/23 11:38
mallocしてfreeしない派の理屈を教えてください。


368 名前: デフォルトの名無しさん 投稿日: 02/03/23 11:46
グローバル変数使いまくり派の理屈を教えてください。


369 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:01
>>367
OSを信頼してるから。


370 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:03
>>368
大丈夫staticでスコープを限定してるし、
一つのファイルに二、三個しか関数無いから(藁


371 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:14
>>367
手に入れたものを手放したくないから


372 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:17
>>364
揚げ足取りでスマソだが、それを言うならint main(int argc, (un)signed char **argv, char **envp)だろ。
(un)signedは付けとかんと。

void main(...)ってのは、8年位前にBorland系(つってもTurbo系)の参考書で見た気がする。
あのころのBorland系って、何でもC++(自称Better C)でコンパイルしようとしてたし。
たしか明示的に書いとかないと、いきなりエラー返したんじゃないかな。返り値を返すべきとか言ってさ。

初心者さんにHello World書かせるのに、K&Rに書いてあるコードと違いすぎるのはどうかなってことじゃないか。
return 0;とかreturn (EXIT_SUCCESS);とかつけとくと、何に返してるんだ?ってことになるし。
実際、void main(void)にしてて、関数の途中でいきなりexit(0);とかしてる本もあったし。

そうゆう参考書見て書いてた奴だったら、返り値が無いときには、癖でvoid main(...)って書くんじゃないかな。
そのころからやってる奴でも、C Mag,とかでやってた奴は、ちゃんとint main(...)で書くし。



373 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:22
>一つのファイルに二、三個しか関数無いから(藁
変数はそれでいいかも(いやよくないが)しれないけど関数はファイルスコープか全部丸見えか
どっちかしかないのに1つのファイルに関数2,3個だと。
小一時間以下略。

もっとも聞いた話では1ファイル1関数という規約を採用しているところがあったそうだ。
関数名とファイル名を合わせておいてls, dir, エクスプローラで関数一覧がでるから
便利という発想らしい。いつの時代の話なんだか。


374 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:33
いや、ここはボケるところなんだが・・・


375 名前: デフォルトの名無しさん 投稿日: 02/03/23 12:35
いや、じゅうぶんボケになっとるが…


376 名前: デフォルトの名無しさん 投稿日: 02/03/23 13:16
void main() が糞

ってことを書くときちがい片岡が来襲するぞ(w


377 名前: デフォルトの名無しさん 投稿日: 02/03/23 13:25
片岡ってmalloc/freeじゃなかったか?


378 名前: デフォルトの名無しさん 投稿日: 02/03/23 15:16
ようわからんが、void main()ってK&R第1版の影響では?


379 名前: デフォルトの名無しさん 投稿日: 02/03/23 16:25
>>373
1ファイル1関数、
しかもその関数は数千行におよび(以下略)

Fortranの時代の名残(くせ)かなぁともおもったです。



380 名前: デフォルトの名無しさん 投稿日: 02/03/23 16:27
freeした後のNULLチェックはどうですか?
どっかでコーディング規約になってたんですが。


381 名前: デフォルトの名無しさん 投稿日: 02/03/23 16:41
>>378
int main() ってのはmainを呼んだ人に値を返したいから 戻り値があるの。
わかる?

返す人がいなきゃ void main() でいーんだよ。


382 名前: デフォルトの名無しさん 投稿日: 02/03/23 17:03
>>381
OSが返してほしいって言ってます。


383 名前: デフォルトの名無しさん 投稿日: 02/03/23 17:05
>>382
うらやましいよ・・・OSがある環境って。


384 名前: デフォルトの名無しさん 投稿日: 02/03/23 17:20
BIOSが返してほしいって言ってます。


385 名前: デフォルトの名無しさん 投稿日: 02/03/23 17:29
>>380
free(p); p = NULL;
という話?


386 名前: デフォルトの名無しさん 投稿日: 02/03/23 19:19
>>384
ますますうらやましいよ・・・BIOSがある環境って。


387 名前: デフォルトの名無しさん 投稿日: 02/03/23 19:39
ますますうらやましいよ・・・pcがある環境って。


388 名前: デフォルトの名無しさん 投稿日: 02/03/23 22:57
ますますうらやましいよ、電気が使えるなんて


389 名前: デフォルトの名無しさん 投稿日: 02/03/23 23:02
ueayamashi-yo! nihongo ga nyu-ryoku dekiru nante!!


390 名前: デフォルトの名無しさん 投稿日: 02/03/23 23:05
うらやましいよ生きているなんて


391 名前: デフォルトの名無しさん 投稿日: 02/03/24 01:51
OSサイコー。BIOSサイコー。pcサイコー。電気サイコー。日本語サイコー。
生きてるってスバラシー!

これで、世の中にバグがなけりゃーね。


392 名前: デフォルトの名無しさん 投稿日: 02/03/24 02:40
>>391
自分のバグなら直せば済む。
OSやコンパイラのバグなら、大抵は回避すれば済む。
イヤなモンには違い無いが。

それ以上に逝ってよしなのは、客と営業のワガママだYO!!
これさえ無ければ・・・


393 名前: デフォルトの名無しさん 投稿日: 02/03/24 04:33
>>392
客と営業が"あんなの"なのは仕様ですので。


394 名前: デフォルトの名無しさん 投稿日: 02/03/24 09:06
最近は必要なくても
int main(int argc, char *argv[])って書いてるな。
後から引数受け取らせたくなることもあるし
必要なければおとなしく0返しとけば良いし。
あ、自分用のちょこっとしたツールの話ね。


395 名前: デフォルトの名無しさん 投稿日: 02/03/24 18:33
>>372
> 揚げ足取りでスマソだが、それを言うならint main(int argc, (un)signed char **argv, char **envp)だろ。
> (un)signedは付けとかんと。
ハァ? いったいどこの方言ですか? デマばらまく前に規格書くらい読め。


396 名前: ビル・ジョブス 投稿日: 02/03/24 21:53
あげ!


397 名前: sage 投稿日: 02/03/24 21:54
sage


398 名前: デフォルトの名無しさん 投稿日: 02/03/24 22:01
>>394
使わない引数書いておくと警告でるじゃん。
(チェックの厳しいコンパイラだと)


399 名前: デフォルトの名無しさん 投稿日: 02/03/25 01:39
>>398
警告は意味がわかっててかつ問題なければ無視していいと思うけど。
>自分用のちょこっとしたツールの話
って書いてるし。


400 名前: デフォルトの名無しさん 投稿日: 02/03/25 01:42
ちょと場合が違うけどBCBでボタンのクリックイベント書くときとか
Sender使わないからって消したりしないしね。


401 名前: デフォルトの名無しさん 投稿日: 02/03/25 06:05
401げとずざー

ついでにage


402 名前: デフォルトの名無しさん 投稿日: 02/03/25 06:23
厨な質問で申し訳ないんですが、
"key value"な形式のdot-fileを舐めるプログラムの常套手段を教えてください。
定番の手法を見つけることが出来ませんでした・・・


403 名前: デフォルトの名無しさん 投稿日: 02/03/25 06:56
>>402
fgetsで行取得、strtokで分解。


404 名前: デフォルトの名無しさん 投稿日: 02/03/25 07:06
for i in .* ; do cut -d ... <$i ; done


405 名前: 仕様書無しさん 投稿日: 02/03/25 09:46
>>328
「古い言語」って何だよ。どの言語なのかハッキリと言え。
C言語より古いってことか? なにを言いたいのかサッパリ判らん。

COBOL しか知らないっていうならデータ型を知らないのも
さもありなん、って感じだが、
そうでもないのなら…
よーし、おじさんが泣いちゃうぞ! ( ´Д⊂ヽウエーン


406 名前: デフォルトの名無しさん 投稿日: 02/03/26 00:19
>>402

VCL使えるならTIniFileしかないっしょ!
これマジで便利よぉ!!



407 名前: デフォルトの名無しさん 投稿日: 02/03/26 11:15
なんか急に落ち着いたな、このスレ。

このぐらいのすたれ具合がたまらん。(W


408 名前: デフォルトの名無しさん 投稿日: 02/03/26 11:25
すたれage


409 名前: デフォルトの名無しさん 投稿日: 02/03/26 14:24
Cはそろそろ終わりですかな
なんちゃって
C#の件をMSDNの最新号で読んだのでいるのですがMSはじゅんすいなCをもう見ていないのですね



410 名前: 仕様書無しさん 投稿日: 02/03/26 15:53
>>409
「MSはじゅんすいなCをもう見ていない」なら、
MSのほうが終わっちゃったのではないか、と小一(略)


411 名前: デフォルトの名無しさん 投稿日: 02/03/26 16:23
glibcライブラリの関数とダブった名前の自作関数を使ったら、
ld にダメだ死されたんですが、
gcc で自作関数の方を優先してリンクするにはどうやったらいいですか?


412 名前: 仕様書無しさん 投稿日: 02/03/26 17:05
>>411
マクロで一方の名前を変える。


413 名前: デフォルトの名無しさん 投稿日: 02/03/26 23:26
セマフォってどういう場合に役に立つのですか?
ロックファイルで十分だとおもうのですが・・・


414 名前: デフォルトの名無しさん 投稿日: 02/03/26 23:37
ロックファイルの何百倍も速くて確実。


415 名前: デフォルトの名無しさん 投稿日: 02/03/26 23:37
ロックファイルはmutexの替わりにしかならない。


416 名前: デフォルトの名無しさん 投稿日: 02/03/26 23:37
しかもスレ違い。


417 名前: デフォルトの名無しさん 投稿日: 02/03/27 01:14
■■ 究極のCコンパイラ C± (void)C ■■

Cコンパイラの新しい動きとして、ANSIの規格案とCにクラスの概念を持ち込んだものが
注目されている。今回、Letace社から発売されたC±は、今までのCと違うかのように見せかけながら、
ちっとも変わらないという点がいままでのCと違う部分である。一方、(void)Cコンパイラは、ANSI規格
をオブジェクト出力にまで適応しオブジェクトをまったく出さないのでコンパイル時間が事実上ゼロと
いう高速なコンパイラとなっている。


418 名前: デフォルトの名無しさん 投稿日: 02/03/27 08:58
>>417
有料コンパイラなんかいらん。


419 名前: デフォルトの名無しさん 投稿日: 02/03/27 11:10
>>417
それ、昔のパロディ版アスキーのネタでしょ? (笑)
Letace社(多分Latice社のパロディ)ってのが時代を感じさせるのう…。



420 名前: デフォルトの名無しさん 投稿日: 02/03/27 12:19
■■ 奇病「WAIDS」全米に蔓延 ■■

米国では現在、ハッカーの間で「WAIDS」と呼ばれる奇病が広まりつつあるという。この病気、別名「ウィンドウ症候群」と呼ばれ、
「最近の高性能マシンに変態的とも言える愛慕の情をだくあまり、ひどい時には死ぬ場合もある」(スピアチャッカー・ジョーンズ・
セロニアス・モンク、ニューヨーク市マッシュ病院コンピュータ病理学ソフトウェア教授)とのこと。「マルチウィンドウズ!」と口
走るのが初期症状とみられており、病状が進行すると車のワイパーを見ただけで視覚神経が萎縮してその場に倒れたり、ホテルなどの
自動ドアに土下座したりといった発作が起こるという。さらに末期になると、「マルチジョブ!」と叫びながら二つの全く異なった動
作をし始めるという。治療にあたってモンク教授は「多くのソフトが発達して、マルチウィンドウが普通のものになれば自然に消滅す
るはず……」とWAIDSに楽観的だが、コンピュータの進歩に伴って第二、第三のWAIDSが発生することも考えられ、日本に上陸する可能
性と合わせて今後も予断を許さない。


421 名前: デフォルトの名無しさん 投稿日: 02/03/27 12:32
そんなあなたに処方箋

昔のPC:Ah!Ski の想い出
http://pc.2ch.net/test/read.cgi/i4004/1008819977/



422 名前: デフォルトの名無しさん 投稿日: 02/03/27 18:33
>>420
わからなくもない。


423 名前: デフォルトの名無しさん 投稿日: 02/03/28 05:56
おいお前ら!
質問はねーのかよ!!


424 名前: デフォルトの名無しさん 投稿日: 02/03/28 06:01
なんでこんな時間に書き込んでいるんですか?


425 名前: デフォルトの名無しさん 投稿日: 02/03/28 07:53
>>424
あと1時間後に納品チェックが始まるのにバグが見つかったから


426 名前: 初心者 投稿日: 02/03/28 09:16
アプリケーションヘッダーってなんですか?
使用スタック領域のことがかいてあるって聞いたんですけど


427 名前: デフォルトの名無しさん 投稿日: 02/03/28 12:52
>>426
なんだろうねぇ。
どこでその言葉聞いたの?>アプリケーションヘッダ


428 名前: デフォルトの名無しさん 投稿日: 02/03/28 13:15
くらぇ! 「アプリケーション・ヘッダァーーーッ!」

スタンド攻撃ですか?


429 名前: デフォルトの名無しさん 投稿日: 02/03/28 14:49
オラオラオラオラオラオラオラ〜〜!!!


430 名前: 初心者 投稿日: 02/03/28 14:57
某プログラムサイトの掲示板で


431 名前: 名無しさん@Meadow 投稿日: 02/03/28 15:16
無駄無駄無駄無駄無駄無駄無駄無駄ぁぁぁ!!!!


432 名前: デフォルトの名無しさん 投稿日: 02/03/28 15:16
>>427
UDP/IP の件でなければ
ロードモジュールの話だろう。


433 名前: デフォルトの名無しさん 投稿日: 02/03/28 23:11
昔はパソコンと呼ばずにマイコンって読んでたの?


434 名前: デフォルトの名無しさん 投稿日: 02/03/28 23:37
パーコンと読んでいました。


435 名前: デフォルトの名無しさん 投稿日: 02/03/28 23:57
>>433
漏れの始めた頃はマイコンと呼ばれていた。
パソコンって呼び方が出てきた時、すげー違和感有ったよ。

って全然スレ違いだ( ゚Д゚)ゴルァ!
http://pc.2ch.net/i4004/
ここでも逝け。


436 名前: デフォルトの名無しさん 投稿日: 02/03/29 00:31
質問。

typedef union
{
struct
{
unsigned char R;
unsigned char G;
unsigned char B;
unsigned char A;
};

struct
{
unsigned int Gray;
};

struct
{
unsigned int Bin;
};
} PIXEL;

これで

const PIXEL PRGB_BLACK = {0, 0, 0, 0};

ってやりたいんだが無理で、

const PIXEL PRGB_BLACK = {0};

これだったら通る。RGBAので初期化したいんだがどうすればいいのでしょう。
共用体は最初のメンバなら初期化できるってCFAQに書いてあったんだけど……
コンパイラはBorland C++ Compiler 5.5
コンパイラがダメなだけかなあ


437 名前: およよ 投稿日: 02/03/29 00:51
共有体とは何ぞや?


438 名前: デフォルトの名無しさん 投稿日: 02/03/29 00:51
無責任な発言ですが、キャストする、とか。


439 名前: デフォルトの名無しさん 投稿日: 02/03/29 01:10
>>436
共用体を使わない。


440 名前: ビル・ジョブス 投稿日: 02/03/29 01:12
質問の根幹からどれるけど、
どうしても、宣言と同時に初期化する必要あるんだ?
ちなみにGDI+だとARGBだよ。


441 名前: ビル・ジョブス 投稿日: 02/03/29 01:13
スマソ。
質問の根幹からそれるけど、
どうしても、宣言と同時に初期化する必要あるんだ?
ちなみにGDI+だとARGBだよ。



442 名前: デフォルトの名無しさん 投稿日: 02/03/29 01:26
質問の根幹からどれるけど、
どうして二重投稿なんだ?



443 名前: 436 投稿日: 02/03/29 01:29
GDI+とかとは関係ないライブラリを作ってるんよ。

んで、
DrawLine(int x1, int y1, int x2, int y2, const PIXEL pixel);
って関数があるもんで、黒とか白とかは定義済みのやつを渡したいなあと。
そして、それはライブラリのコードの中に封じ込めたいんで、宣言後初期化するとなると、
初期化関数でもよばせるしかない。それはちょっとかっこわるいんで、できれば宣言と同時に初期化したいのです。



444 名前: デフォルトの名無しさん 投稿日: 02/03/29 01:49
>>436
#pragma pack(push, 1)
typedef union {
 DWORD RGBA;
 DWORD Gray;
 DWORD Bin;
 struct {
  BYTE R, G, B, A;
 };
} PIXEL;
#pragma pack(pop)
#define PIXEL_RGBA(r, g, b, a) {( (a << 24) | (b << 16) | (g << 8) | (r) )}

PIXEL pix = PIXEL_RGBA(1, 2, 3, 4);

こうしちゃだめなん?


445 名前: 436 投稿日: 02/03/29 02:09
>>444
なるほど。素晴らしい。
どうもありがとうございます。


446 名前: デフォルトの名無しさん 投稿日: 02/03/29 02:35
>>436
いわゆる無名構造体は処理系の拡張機能なのだが、
先頭にダミーを置いてやればbccでも通る。

typedef union
{
 struct {unsigned char R, G, B, A;} dummy;
 struct {unsigned char R, G, B, A;};
 unsigned int Gray;
 unsigned int Bin;
} PIXEL;


447 名前: 436 投稿日: 02/03/29 03:30
>>446

構造体に名前つけないのは拡張機能なのですか……
全然しらんかった。
サンクスです〜


448 名前: デフォルトの名無しさん 投稿日: 02/03/29 10:05
>>446
てか、この場合わざわざ無名にする意味がわからん。
おしえてください。おながいします。


449 名前: デフォルトの名無しさん 投稿日: 02/03/29 16:35
GCCでmath.hに掲載されている関数を使うにはどうすればいいのですか?
普通にコンパイルしても使えませんよね?
オプションが必要なのでしょうか?

もう一つ質問させてもらいます。
無償の統計用のライブラリってありますか?


450 名前: デフォルトの名無しさん 投稿日: 02/03/29 16:53
gcc -lm


451 名前: デフォルトの名無しさん 投稿日: 02/03/29 17:16
>>449
普通に
#include <math.h>
ってやっても、何故使えないんだろう?
                         (((( ;゚д゚)))ガクガクブルブル


452 名前: デフォルトの名無しさん 投稿日: 02/03/29 17:38
>>451
なぜ震えてる(藁

>>449
>>450 が正解


453 名前: デフォルトの名無しさん 投稿日: 02/03/29 17:53
ありがとうございました。
みなさんはlibm.aというライブラリがある事をどうして知っているのですか?

とても不思議です。常識じゃないですよね?
man gccでもでてこないし。


454 名前: デフォルトの名無しさん 投稿日: 02/03/29 17:59
>>453
大学1年のときに教官から教わった。


455 名前: デフォルトの名無しさん 投稿日: 02/03/29 18:08
スレッドを使うときは
-pthread
とかこういうのはマニュアル読むしかないよ


456 名前: デフォルトの名無しさん 投稿日: 02/03/29 18:14
ぐぐった


457 名前: デフォルトの名無しさん 投稿日: 02/03/29 18:24
>>453
以前ここで見た(ワラ


458 名前: デフォルトの名無しさん 投稿日: 02/03/29 20:23
>>453
いや常識だと思う。マジレス


459 名前: 名無しさん@Emacs 投稿日: 02/03/29 20:30
いや常識かどうかという問題じゃないと思う。マジレス


460 名前: 459 投稿日: 02/03/29 20:31
あ、何でもない。逝ってくる


461 名前: デフォルトの名無しさん 投稿日: 02/03/29 22:02
gcc使い始めたら、たいていは通る道だと思うから、
そういう意味で常識に1票。


462 名前: デフォルトの名無しさん 投稿日: 02/03/29 23:08
nmでgrepすればわかるじゃん。


463 名前: デフォルトの名無しさん 投稿日: 02/03/29 23:24
man gccじゃわからんだろう。
man sinならわかるかもよ。


464 名前: デフォルトの名無しさん 投稿日: 02/03/30 00:10
man sinでもでてこないですね。
まぁこれはガキ大将から一人エッチを教えてもらうのと同じなのかも。



465 名前: デフォルトの名無しさん 投稿日: 02/03/30 00:23
メーリングリストとか掲示板とかチェックしてたら、
一回くらい目にするんじゃないの?
>>1にあるFAQにも載ってるし。


466 名前: デフォルトの名無しさん 投稿日: 02/03/30 01:06
man ld


467 名前: デフォルトの名無しさん 投稿日: 02/03/30 01:46
どなたかリングバッファの実装(非同期書きこみ、非同期読み出し)についての
実例や詳細解説文献等について教えてくれませんかぁ?



468 名前: デフォルトの名無しさん 投稿日: 02/03/30 02:24
初歩的な質問ですみません。
ドライブ内やディレクトリ内にある、全てのファイル名を取得するには
どのようにコーディングしたら良いのでしょうか?
ご回答よろしくお願いします。


469 名前: デフォルトの名無しさん 投稿日: 02/03/30 02:36
それはC言語の範疇じゃない。
環境書かないと。


470 名前: デフォルトの名無しさん 投稿日: 02/03/30 02:44
>>468
一応マジレスしとくと
readdir()とかFindFirstFile()とか調べれ


471 名前: 468 投稿日: 02/03/30 02:47
すみません、Windows環境です。
サブディレクトリ内のファイル・ディレクトリ名も取得したいのですが...
よろしくお願いします。


472 名前: 468 投稿日: 02/03/30 02:48
>>470
ありがとうございました。
ちょっと調べてみます。


473 名前: デフォルトの名無しさん 投稿日: 02/03/30 03:02
>>468
禿しくガイシュツな気がするが・・・
man opendir


474 名前: デフォルトの名無しさん 投稿日: 02/03/30 03:07
Windows環境ならたぶんちがうな。UNIXしか触らんので
識者求む。


475 名前: デフォルトの名無しさん 投稿日: 02/03/30 04:38
>>447
無名共用体はC++の標準機能だけど
ここはC言語スレだから拡張機能でいいのか


476 名前: デフォルトの名無しさん 投稿日: 02/03/30 08:18
無名共用体は標準だけど無名構造体は非標準


477 名前: デフォルトの名無しさん 投稿日: 02/03/30 18:48
おいROMっている奴、質問はないのか?(怒)


478 名前: デフォルトの名無しさん 投稿日: 02/03/30 19:02
>>477
怒るなよ。マターリと質問を待とうぜ。


479 名前: デフォルトの名無しさん 投稿日: 02/03/30 20:12
>>477
ではひとつ。

関数ポインタの配列を使ったリフレクションもどきのコード
を教えてください。とりあえずテンプレートになりそうな
疑似コードで結構です。

まずはイディオム的に覚えたいのです。


480 名前: デフォルトの名無しさん 投稿日: 02/03/30 20:41
リフレクションという機能をご存知でしょうか。リフレクションとは,クラス・インタフェイス・オブジェクトに関する情報を取得するための仕組みです。
リフレクションは,Javaプログラムの開発ツール(クラスブラウザ・デバッガ・GUIデザイナなど)を作るときに欠かせない機能です。



481 名前: デフォルトの名無しさん 投稿日: 02/03/30 21:21
>479
void *TMyClass_GetMethodAddress(const char *MethodName)
みたいのをすべてのクラス(というか構造体)に対して作れば
JavaやRubyなんかのリフレクションは超簡単に実装できるよ。
でもすべて手動で書かないといけないので面倒極まりない。


482 名前: デフォルトの名無しさん 投稿日: 02/03/31 03:50
K&Rの演習をやってたんですが、

printf("signed char min = %d\n", -(char)((unsigned char) ~0 >> 1));
printf("signed char max = %d\n", (char)((unsigned char) ~0 >> 1));
printf("unsigned char max = %u\n", (unsigned char) ~0);

ってやると上から1、-1、65535になるのは何が悪いのでしょうか?


483 名前: デフォルトの名無しさん 投稿日: 02/03/31 04:12
gcc 2.96 でやってみた
signed char min = -127
signed char max = 127
unsigned char max = 255
になった。



484 名前: デフォルトの名無しさん 投稿日: 02/03/31 06:20
bcc5.5、vc++6で >>483 と同じ結果になった。


485 名前: デフォルトの名無しさん 投稿日: 02/03/31 07:45
C言語は永久に不滅です。


486 名前: デフォルトの名無しさん 投稿日: 02/03/31 13:58
>>483-484
コンパイラ変えたら上手くいきました。
ありがとうございます。


487 名前: デフォルトの名無しさん 投稿日: 02/03/31 14:07
>>486
どのコンパイラ使ってたんだ?



488 名前: デフォルトの名無しさん 投稿日: 02/03/31 14:21
>>487
LSIC-86 Ver3.30c 試食版です。


489 名前: デフォルトの名無しさん 投稿日: 02/03/31 14:22
ところで、signed charの最小値は-128ね。


490 名前: デフォルトの名無しさん 投稿日: 02/03/31 15:36
>>489
1の補数なら127だYO!


491 名前: 490 投稿日: 02/03/31 15:36
×127
○-127


492 名前: デフォルトの名無しさん 投稿日: 02/03/31 15:40
試食版っていうネーミングは好きだなぁ(独り言)


493 名前:   投稿日: 02/03/31 16:41
floatを高速にintに変換する方法を教えろ!
高速にだぞ


494 名前: デフォルトの名無しさん 投稿日: 02/03/31 17:27
float f;
int i = *(int*)&f;


495 名前: デフォルトの名無しさん 投稿日: 02/03/31 17:33
>>494
DQNでごめんなさい。
なんでそれだと早いの?なんかおもいっきしプロ技に見えるのは俺だけ?




496 名前: デフォルトの名無しさん 投稿日: 02/03/31 18:48
んなことしたら正常な値がとれないぞ。
http://www.stereopsis.com/FPU.html


497 名前: デフォルトの名無しさん 投稿日: 02/03/31 19:12
ネタだろう。。。


498 名前: デフォルトの名無しさん 投稿日: 02/03/31 19:53
>>490
ANSI−Cは2の補数を保証してるYO!


499 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:06
Cプログラマ必読のWEBページってありますか?
ライブラリが集結したようなのとか?



500 名前: 500get 投稿日: 02/04/01 01:11
⊂(ΦωΦ⊂ )⊃≡フフフ・・


501 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:12
>>499
http://pc.2ch.net/tech/index.html



502 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:14
code projectとか。



503 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:18
ttp://www.codeguru.com/

これのC言語版みたいなページがあればお願いします。

#自分がVC++プログラマだった時にこのページを知っていたら
人生が変わっていたと思う。

今はUnixプログラマ


504 名前: nanashi 投稿日: 02/04/01 01:48
void ex(void)
{
int a;

printf("1or2を選択 : ");
scanf("%d", &a);

switch(a){
case 1: printf("1");
break;
case 2: printf("2");
break;
default: printf("1か2を選択\n");
ex();
}
}

こういうswitchの使い方はありですか?


505 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:51
マア イインジャネーノ。


506 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:51
switch使ってもいいこんなくだらないことで再帰するな



507 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:54
こういう場合再帰ではなくループで書くのが定石
それからscanfの戻り値をちゃんとチェックしとけよ


508 名前: デフォルトの名無しさん 投稿日: 02/04/01 01:56
ctrl+Zとかctrl+Dで無限再帰であぼーんキボンヌ。

ホストでコレやればCPU使いまくりで課金で逝けるな。



509 名前: nanashi 投稿日: 02/04/01 01:56
ループですか 分かりました
こんな時間にレスありがとうございました


510 名前: デフォルトの名無しさん 投稿日: 02/04/01 03:17
>>498
してないYO!
でたらめ言うなYO!
負数の内部表現は処理系依存だYO!


511 名前: デフォルトの名無しさん 投稿日: 02/04/01 08:19
>>504
というか、この場合switch以外を使うメリットが感じられないのだが。


512 名前: デフォルトの名無しさん 投稿日: 02/04/01 09:16
>>504
whileならどうよ。スキーリすんじゃねぇの?


513 名前: デフォルトの名無しさん 投稿日: 02/04/01 09:52
あれで再帰を使うとは。。。schemerだな?


514 名前: デフォルトの名無しさん 投稿日: 02/04/01 09:56
末尾再帰マンセー!


515 名前: デフォルトの名無しさん 投稿日: 02/04/01 13:44
do-whileの典型じゃないの?


516 名前: デフォルトの名無しさん 投稿日: 02/04/01 18:43
定期age


517 名前: デフォルトの名無しさん 投稿日: 02/04/01 23:22
long(a+b)とlong a + long b の違いを教えていただけないでしょうか?



518 名前: デフォルトの名無しさん 投稿日: 02/04/01 23:33
マルチポストね。
どうりで。


519 名前: デフォルトの名無しさん 投稿日: 02/04/02 00:09
ANSIのC規格書はどこにありますか?


520 名前: デフォルトの名無しさん 投稿日: 02/04/02 00:13
>>519
当然の事ながらANSIに有るそうだけど、有料との事。


521 名前: デフォルトの名無しさん 投稿日: 02/04/02 00:15
ガビ━━(゚д゚;)━━ン
有料ナンレスカ・・・(ノД`)


522 名前: デフォルトの名無しさん 投稿日: 02/04/02 00:42
つか、ANSIは規格書が大事な収入源。


523 名前: 520 投稿日: 02/04/02 00:46
>>519,521
C-FAQの5.2参照。


524 名前: 520 投稿日: 02/04/02 00:47
スマソ. 11.2。


525 名前: デフォルトの名無しさん 投稿日: 02/04/02 02:28
Cでリフレクション実装したいって、喧嘩売ってるとしか思えない・・。


526 名前: デフォルトの名無しさん 投稿日: 02/04/02 10:21
喧嘩age


527 名前: デフォルトの名無しさん 投稿日: 02/04/02 10:45
つか、意味無いじゃん。


528 名前: デフォルトの名無しさん 投稿日: 02/04/03 14:14

struct kozotai {
int i;
char c;
};

struct kozotai kozo;

と定義したとき、
kozo.cはメモリー上でkozo.iのすぐ後にくることは保証されていますか?



529 名前: デフォルトの名無しさん 投稿日: 02/04/03 14:35
>528
保証されていません。
メモリ上でパディング(詰め物)がある場合がありそれは実装依存です。


530 名前: デフォルトの名無しさん 投稿日: 02/04/03 15:14
>>528
隙間あるってのもあるけど、順序が逆になっていてもおかしくはない。


531 名前: デフォルトの名無しさん 投稿日: 02/04/03 15:15
メンバーの順序が保証されてなかったら、シリアライズがめんどーじゃん。


532 名前: デフォルトの名無しさん 投稿日: 02/04/03 15:30
>>531
そういうもんだからしかたない。


533 名前: デフォルトの名無しさん 投稿日: 02/04/03 15:59
>>531
つーか、シリアライズのためには
バイト境界を弄る (C言語の範疇外。コンパイラの起動オプションや
#pragma で設定)とか、隙間をパディングするとか、
初期化と参照時に一工夫が必要であるとか、
また union を使うといった技術を併用することが必要。
しかもプラットフォーム依存。

だからといって、C言語だから面倒だというのはおそらく不当な謂いで
あり、COBOL の人などに聞かせてごらんなさいよ、
ここいらの話を、あぁた。


534 名前: デフォルトの名無しさん 投稿日: 02/04/03 16:07
シリアライズってなんですか?


535 名前: デフォルトの名無しさん 投稿日: 02/04/03 16:09
C FAQにもメンバをひとつずつ保存するのが一番移植性高いって書いてあるしね。


536 名前: デフォルトの名無しさん 投稿日: 02/04/03 21:28
>>530
K&Rのp.265には、
「構造体のメンバーは、宣言の順序に増えていくアドレスをもつ」
と書いてあるんですが…。


537 名前: デフォルトの名無しさん 投稿日: 02/04/03 21:42
>>536
そうだね。
ごめん。かんちがいしてた。


538 名前: デフォルトの名無しさん 投稿日: 02/04/03 22:53
win9x系のOSで配列の範囲を超えて値を書き込んだりして、
OSごと逝ってしまうってことはありえるの?




539 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:00
普通のアプリではあまり無いが、できないことはない。



540 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:02
#include <stdio.h>

void main()
{
    struct{
        char c;
        int n;
    }a;
    printf("%d\n", sizeof(a.c));
    printf("%p, %p\n", &(a.c), &(a.n));
}
---
1
0012FF84, 0012FF88
---
まあ、普通はこうなるだろな。多少開きができてる。


541 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:15
ABIって何ですか?


542 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:42
こっちが聞きてーよ


543 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:44
>win9x系のOSで配列の範囲を超えて値を書き込んだりして、
>OSごと逝ってしまうってことはありえるの?
ある。

というのはメモリ上のクリティカルな部分を破壊することがあり得るから。
たとえばカーネルそのものとか大事な環境変数とかを書き換えてしまうと
OSごと死ぬだろう。
といってNT系が全く大丈夫と言うわけではない。だが9.x系に比べたら天と地の差だ。


544 名前: デフォルトの名無しさん 投稿日: 02/04/03 23:49
>>542
ウケタ(w


545 名前: デフォルトの名無しさん 投稿日: 02/04/04 00:04
>>541
http://www.acronymfinder.com/af-query.asp?String=exact&Acronym=ABI&Find=Find
お好きなのを。

まあ、たぶん↓のことだと思うけど。
http://computers.yahoo.co.jp/dict/semicon/mpu/37.html


546 名前: デフォルトの名無しさん 投稿日: 02/04/04 01:51
>>542
ワラタ・・・


547 名前: デフォルトの名無しさん 投稿日: 02/04/04 12:29
>>543
(´−`).。oO( ハゲドー )
数MBも書き込もうとすると、とんでもないことに ,,,ヽ(;´д`)ノ


548 名前: デフォルトの名無しさん 投稿日: 02/04/04 19:09
この板って5行プログラミングみたいなことはやらないの?


549 名前: デフォルトの名無しさん 投稿日: 02/04/04 19:40
>>548
(;´д`).。oO( やってみぃ )


550 名前: デフォルトの名無しさん 投稿日: 02/04/04 19:55
>>548
確か昔そんなスレを見たような気が・・・


551 名前: デフォルトの名無しさん 投稿日: 02/04/04 20:46
只今あるソフトを移植してるのですが、
pase error before `size_t'
というエラーが死ぬほどでます。これを出ないようにするにはどうしたら
いいでしょうか?
一つにはコンパイルオプションとして-ansiをつければいいというのが
あるそうなのですが、それでも出るものは出てしまいます。

なにか方法があれが教えて下さい。
コンパイラはgcc、OSはLinuxです。


552 名前: デフォルトの名無しさん 投稿日: 02/04/04 20:53
何を移植しているのか、もしくは
移植源の環境(OS コンパイラ 使用ライブラリ)

最低限これだけは書いてこい


553 名前: デフォルトの名無しさん 投稿日: 02/04/04 21:04
>>551
実際のコード見てみないと原因はわからん気がする


554 名前: デフォルトの名無しさん 投稿日: 02/04/04 21:05
何を移植してるのかはちょっと一身上の都合でバラスわけにはいかないのですが、
移植もとのプログラムはFreeBSD,gcc,libcです。よろしくお願いします。

このエラーがどういったときに出たりするものなのか体験済みであれば
それを教えて下さい。


555 名前: デフォルトの名無しさん 投稿日: 02/04/04 21:06
>>553
エラーもなにもlibc用のヘッダーファイル内でそのエラーが出るんですよ


556 名前: デフォルトの名無しさん 投稿日: 02/04/04 21:09
configure.inとMakefile.amを書き直せ


557 名前: デフォルトの名無しさん 投稿日: 02/04/04 21:12
551のpaseはparseです。すみません


558 名前: デフォルトの名無しさん 投稿日: 02/04/04 22:28
七行プログラミング
http://pc.2ch.net/test/read.cgi/tech/984182993/



559 名前: デフォルトの名無しさん 投稿日: 02/04/04 22:41
ヘッダーファイルにバグがあるとか?


560 名前: デフォルトの名無しさん 投稿日: 02/04/04 22:49
>>556
automakeは簡単に使えるようになるんでしょうか?


561 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:04
ところで、
size_tって基本的にはunsigned intなんでしょうか?


562 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:14
自己レスです。エラーの原因は分かりました。
ただ単にsize_tをtypedefしてるヘッダーを取り込んでいない
ことでした。でも、今度はそれがどのヘッダーをインクルードすれば
いいのかさっぱり、、、


563 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:16
size_t は stddef.h でしょう。たぶん。


564 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:18
>>555
parse error before なんちゃらかんちゃら
は、結構よく出るよ。
で、原因はそのなんちゃらかんちゃらの「前」にあるので、その行は問題なし。
#defineとかtypedefとか#ifdefあたりが、コンパイル環境のヘッダファイルと
微妙に矛盾してんじゃないかな。
プリプロセッサの出力結果を見てみよう。


565 名前: 564 投稿日: 02/04/04 23:19
ガーン。既に解決・・・


566 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:30
>>563
Linuxはdebianを使っているのですが、これのlibc-devに含まれている
<linux/stddef.h>では例の有名なNULLゼロか非かのもとが定義されている
だけでした。

>>564
ありがとうございます。
#include<stdio.h>
size_t st;
int main(){}
とすればコンパイルは通るのですが、
stdio.hの行をコメントアウトするととたんにコンパイルが
通らなくなります。そのときのエラーメッセージはこうです。
test.c:2: parse error before `t'
test.c:2: warning: data definition has no type or storage class

これは先のケースと同じものでした。parse errorが重要なのではなくて
その下の行でした。あんまり沢山でてたので見落としてました。


567 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:34
C言語でキーボードから入力した
二進数、八進数、十六進数を十進数に変換するにはどうすればいいでしょうか。



568 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:36
strtolとか、sscanfとか。


569 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:37
>>567
どのへんまでできていて、どのへんに困ってるの?


570 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:45
>>569
実は全然……
桁の重みをどうやって表現しようか考えているけどちょっと分からない。
数字を一つ一つバラすのかと思ってみたがcharを使うのかな
でもそれだと文字列扱いに……


571 名前: デフォルトの名無しさん 投稿日: 02/04/04 23:57
筆算での求め方は分かってるのか?


572 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:13
とりあえず。
2進数だと「1」の入っている桁に
2のN乗といった重みを加えて足していけば出るはず。



573 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:28
size_tの定義されてあるところが分かりました。
嬉しいので報告させていただきます。

<linux/types.h>で
typedef __kernel_size_t size_t;
となっていて、
<asm/posix_types.h>で
typedef unsigned int __kernel_size_t;
と定義されていました。

皆さんどうもありがとうございました。


574 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:36
このスレレベル高くて初心者には荒らせねぇ。
鬱だ・・・また出直すとするか。


575 名前: 573 投稿日: 02/04/05 00:46
ところでまた別のエラーのが沢山出てきました。
こういったヘッダーファイルの依存関係を解決する手段として
automakeは使えるんでしょうか?automakeがなんなのかさぱーり
分かりません。

>>574
漏れがレベルを極端に下げています。申し訳ありません。


576 名前: 575 投稿日: 02/04/05 00:46
リスンソケットって何ですか?


577 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:47
↑新手の荒らし手法だな(藁


578 名前: 576 投稿日: 02/04/05 00:49
私は573のひとではありません。
おんなじ時間に書きこみをしたみたいです


579 名前: 576 投稿日: 02/04/05 00:49
荒らしではありません。ごめんなさい


580 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:51
listenで検索


581 名前: デフォルトの名無しさん 投稿日: 02/04/05 00:53
>>573
gccでコンパイルするアプリはAutoconf、Autoまけは基本だ。
makefileが書けるならこことか読みながらMakefile.amを書いて見るのがいい。
http://www.ainet.or.jp/~inoue/gnu/autoconf.html


582 名前: デフォルトの名無しさん 投稿日: 02/04/05 04:24
>>567
それって大抵の本に必ずと言っていいほど載ってないか?
頭から一文字づつ読んで

n = n * 重み + その桁の値;

でループ回せ。


583 名前: デフォルトの名無しさん 投稿日: 02/04/05 05:38
#if define(XXX)と
#ifdef XXXは
何が違うんでしょうか?


584 名前: デフォルトの名無しさん 投稿日: 02/04/05 05:39
トークンが違う

効果は同じただの短縮


585 名前: デフォルトの名無しさん 投稿日: 02/04/05 05:42
>>584
こんな時間に即レス、、、どうもありがとうございます。
#if defined(XXX)の間違いでしたね。
ちなみにこれだと
#if defined(XXX) && defined(YYY)
なんてこともできるみたいですね。


586 名前: デフォルトの名無しさん 投稿日: 02/04/05 06:27
おまいら!今日びC言語なんてやってんじゃねぇ!
VC++7.0a遂に発表されたぞ!MFCも7.0になるぞ!

http://natto.2ch.net/test/read.cgi/denpa/1016241454/


587 名前: 569 投稿日: 02/04/05 08:05
>>570
とりあえずバラしかただけど、10進数以下なら、「0」の文字コードぶん引けばいいので、
char in[] = "12034";
v = in[0] - '0';
ってな感じで、この場合 v に 1 が入るなりよ。
16進数の場合は、アルファベットも混じってくるので、場合分けするなり
なんなりしてね。


588 名前: デフォルトの名無しさん 投稿日: 02/04/05 08:21
#ifdefと#ifndefってなんですか?


589 名前: デフォルトの名無しさん 投稿日: 02/04/05 08:47
>>588
え?マジで知らないの?


590 名前: デフォルトの名無しさん 投稿日: 02/04/05 09:03
最近無知荒らしが酷いな。


591 名前: >588 投稿日: 02/04/05 10:22
#ifdefはマクロがdefineされているとき#endif(もしくは#else)との間を残す、プリプロセッサ
#ifndefは逆



592 名前: デフォルトの名無しさん 投稿日: 02/04/05 15:20
>>588
マクロを定義する際に再定義してしまう可能性がある時によく使うかな。。。
プリプロセッサに「マクロを再定義してんじゃねーよ!」って言われないように。


593 名前: デフォルトの名無しさん 投稿日: 02/04/05 15:44
とりあえずヘッダを2重インクルードしないようにするために使う。


594 名前: デフォルトの名無しさん 投稿日: 02/04/05 17:30
>>593
そーですな。
#define hogehoge
とか
#define hogehoge 1
とか
#define HogeMainH
なんつー感じの定義なんかと一緒にね。


595 名前: デフォルトの名無しさん 投稿日: 02/04/05 18:49
#defineの再定義は問題ないんですか?
Waringしか出ないのでいいのかと・・


596 名前: デフォルトの名無しさん 投稿日: 02/04/05 18:50
typedef struct{
int foo;
double bar;
char baz[256];
} aaa;

typedef struct{
int foo;
double bar;
} bbb;

aaa a;
bbb b;
とした場合、
*(*bbb)&a = b;

a.foo = b.foo;
a.bar = b.bar
と同じ結果を期待できますか?


597 名前: デフォルトの名無しさん 投稿日: 02/04/05 19:13
できたとしてもやるもんじゃないヨカーン。
コピーするなら同じ型同士で、あと(*bbb)は(bbb*)。


598 名前: デフォルトの名無しさん 投稿日: 02/04/05 19:18
>>596
自分でソースを書いて実行してみたか?
それすらせずに質問するのはどうかと思うぞ。

恐らく殆どの処理系で、思ったとおりに動作するだろうが、
気分的には>>597に激しく同意する。


599 名前: デフォルトの名無しさん 投稿日: 02/04/05 22:04
構造体のメンバの並びは実際にメモリに割り付けられる順とは何の関係
も保証されていない。


600 名前: デフォルトの名無しさん 投稿日: 02/04/05 22:08
>>599
>>536


601 名前: デフォルトの名無しさん 投稿日: 02/04/05 22:20
順番は大丈夫だけど、メモリ配置はパディングが入って狂うかもしれない。


602 名前: デフォルトの名無しさん 投稿日: 02/04/05 22:37
ちょっと質問
ポインタのポインタありますよね。
int *pointer;
int **temp;

temp = &pointer;

ってすると思いますがなぜ
int **tempにする必要があるのですか?

ポインタのポインタとは言えただのint型のポインタに違いは無いのだから。
int *temp;
temp = &pointer;

で理屈ではあっていると思うのですが?

それとも決まりだからしょうがないって感じなのでしょうか?
**tempにしなければいけない理由は?
お願いします。


603 名前: デフォルトの名無しさん 投稿日: 02/04/05 22:53
>>602
int型へのポインタの実体は、intデータを指す。
int型へのポインタのポインタの実体は、int型へのポインタを指す。
全然違います。


604 名前: デフォルトの名無しさん 投稿日: 02/04/05 23:01
>>602
例えば、

void main(void)
{
FILE *fi;
foo(fi)
}

void foo(FILE *fi)
{
fi = fopen("bar", "r");
}

とやってもうまくいかないよ。

void main(void)
{
FILE *fi;
foo(&fi)
}

void foo(FILE **fi)
{
*fi = fopen("bar", "r");
}

としなければならない。それと同じこと。

それからこれは極論になるが、int ***********p; なんてのも作れる。ほとんど
使い道ないけど。


605 名前: デフォルトの名無しさん 投稿日: 02/04/05 23:04
あっちなみに>>604は、main関数の foo(fi); の後で、fiを使った処理を行うものと
仮定しているよ。


606 名前: デフォルトの名無しさん 投稿日: 02/04/05 23:09
さんくすこ


607 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:15
603の説明でよいのだが初学者が陥りやすい点なので重ねて強調しておきたい。

>ポインタのポインタとは言えただのint型のポインタに違いは無いのだから

これはおそらくポインタの値を表示させると(ふつうは)アドレスが表示されるからそのように感じているのだろう。
しかしポインタはアドレスではない。ポインタとはオブジェクトを指すものであり間接演算子を適用したときに
その実体にアクセスできることが保証されているだけである。

型の名前は変数の宣言から識別子をのぞいたものであるから以下の宣言での変数aの型は
int a;  //int型
int *a; //int *型
int **a; //int **型






608 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:21
VC++6で、下のようなコードを書くと最後の行でエラーがでるんですが、何故?

struct aho
{
unsigned char baka;
};

struct aho sine;

sine.baka=0;



609 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:23
>>608
どんなエラーが出るのかくらい書きなさい。


610 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:26
error C2143: 構文エラー : ';' が '.' の前に必要です。
error C2501: 'sine' : 識別名を宣言するのに、型が指定されていません。
error C2371: 'sine' : 再定義されています。異なる基本型です。
'sine' の宣言を確認してください。
error C2143: 構文エラー : ';' が '.' の前に必要です。
って出ます。こんなの初めて


611 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:27
>>608
main関数がないからです。


612 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:29
>>611
Windowsなのですが、WinMainはあります



613 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:32
いや、そうじゃなくて。
初期化する場所が間違ってるってこと。


614 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:57
>しかしポインタはアドレスではない。ポインタとはオブジェクトを指すものであり

ポインタってアドレスじゃないの??


615 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:58
>>614
ポインタは演算ができる


616 名前: デフォルトの名無しさん 投稿日: 02/04/06 00:59
>>615
どういう事ですか?


617 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:08
>>616
ポインタは、アドレスではなく、あくまでもアドレスを保持する変数である。


618 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:09
型がついてるので、単純にアドレス、で済ますわけにはいかない。


619 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:11
>>617
それについて詳しく載っているサイトや本はありますか?
ポインタがアドレスじゃないとは私にはあまりに刺激的過ぎます。
今までアドレスだと思い込んでプログラム組んできました。


620 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:12
アドレスのアドレスって
結局アドレスのような気がしますが型が違うという事でしょうか?


621 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:13
なんか頭悪げな奴が一匹…


622 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:15

あほか、おまえしめるぞ


623 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:16
このサイトで質問してみなさい。タイムラグがあるかもしれませんが、
各種方面の方々が懇切丁寧に教えてくれます。
http://www.pp.iij4u.or.jp/~nabe/c/


624 名前: 620 投稿日: 02/04/06 01:23
アドレスのアドレスはアドレスなワケで
コンピュータはどこからデータなのかどうやって分かるんですか?


625 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:26
int *temp,*pointer,i;
pointer = &i;
temp = (int*)&pointer;
*(int*)(*temp)=40;
こういうことがやりたいというなら、ご随意に。
死にたいと言うものを止めはいたしませぬ。

>624
わかりはしない。デレファレンスされたときに、それを
アドレスとして扱う、というだけのはなし。



626 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:29
>>620
int **p = &&i;
(´-`).。oO(どうしてこれは駄目なんだろう?)


627 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:29
>>624
アドレスのアドレスは確かにアドレスですが、どんどんその値が参照するに
つれて変わっていくでしょ?

int i;
int *p;
int **pp;

p = &i;
pp = &p;

とした時、pはiのアドレスを保持しますが、ppはあくまでもpのアドレスを保持
するのであって、iのアドレスを保持するわけではありません。
ここまではわかりますか?

では、ppを使ってiを参照しようと思ったら、**pp のように、*を二個つけなけ
ればいけないわけ。

pp->p->i のように二段になっているというのがその理由です。おわかり?


628 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:31
結局、アドレスだし、コンピュータには
変数がアドレスか値かは区別できないよ。

ただ、コンパイラがソースを解釈する時に混同しないように
各言語でポインタ用の型を用意しているんだよ。

int *a;
int *b;
a=&b;
これが成立したら、
*a
がbのポインタを指すのか、bの内容を指すのかコンパイラは判断できないからね。



629 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:36
>>626
&&i はオカシイ。
変数iのアドレスを参照するのが&iだから、
&&iは何を指す?
ちなみに、
int **p=(int **)&i;
なら問題ないけど。確実にバグる。


630 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:37
(アドレスつったって、オフセットかもしんないし、物理アドレスかもしんないし、仮想アドレスかもしんないし、
リニアアドレスかもしんないし、ハンドルかもしんないし、セグメントディスクリプタかもしんないし…
「アドレス」っていう単語には、あまり意味が無い気もする・・・)


631 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:38
>&&iは何を指す?
テンポラリオブジェクト、かなぁ。


632 名前: 629 投稿日: 02/04/06 01:44
>>631
スマソ。テンポラリオブジェクトって分からんわ。
そういえば、論理演算子に&&あるやん。



633 名前: デフォルトの名無しさん 投稿日: 02/04/06 01:45
>>631
ここは C スレだよ?


634 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:04
>>625
int *temp,*pointer,i;
pointer = &i;
temp = (int*)&pointer;
*(int*)(*temp)=40;

これってどうダメなんですか?


635 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:11
>>634
これはダメじゃないけど、ポインタの意味をねじ曲げて使っている。
tempはint * なのに、int ** に無理矢理コンパイラを騙している。
しかも見た目はint * なので、なおさらたちが悪い。
これは単なる遊びだと思って下さい。間違っても真似しないように。


636 名前: a 投稿日: 02/04/06 02:13
>>634
打つのが面倒臭いから


637 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:14
>>635
なるほど、理解しました
要するに奇妙なコードは最初から書くなってことですね


638 名前: Disca ◆NAfP6znE 投稿日: 02/04/06 02:16
現在、データベースなるものを自力で作ろうとしているのですが、
データの検索、データの追加時に、fread(fget)などで修得すると思うのですが、
64KByte(GlobalAlloc(Windows環境での普通割り当て値)のデータファイルを、
64KByteのバッファを用意して、まるごと読み込んでから検索した方が速度的に早いのか…。
それとも、小さなバッファを用意して、こまめに fread or fget or fgetc でも早く検索
できるのでしょうか?。

それと、fread などでファイルから読み込む時には、ファイルからダイレクトに入出力しているのでしょうか?
お願いいたします。



639 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:19
>>637
いや、奇妙なコードを書ければ、それはそれで意味あるぞ。
最高に読みにくいCのコードを集めてコンテストしてるおバカなサイトがある。
http://www0.us.ioccc.org/years.html


640 名前: 鈴木証人 投稿日: 02/04/06 02:19
お答えします。それはですね、あなたですね、でーたーべーす、
というものですね、はなはだ、曲解、ないし、勉強をしていない、
と、こうですね、思わざるをえないんです。


641 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:37
変数にアドレスを格納しきれないとき、
エラーが起きる。
例えばintをcharにしたときとか。

#これでいいのかな?


642 名前: デフォルトの名無しさん 投稿日: 02/04/06 02:40
これからCを勉強しようとしているものです。
質問なのですが、とあるところに、Cを勉強中はブルースクリーンになってしまうことが多いので、
メインのPCではプログラムを組まないほうがよいとあったのですが、本当でしょうか?


643 名前: デフォルトの名無しさん 投稿日: 02/04/06 03:10
>>642
心配しすぎだ。
バックアップさえこまめに取っていれば、大抵は問題無い。
但し、仕事で使うPCや、他人と共有するPCなら避けた方が無難。



644 名前: デフォルトの名無しさん 投稿日: 02/04/06 03:11
NTでやれ、NTで。
ユーザープログラムごときでOSが死ぬことはないから


645 名前: デフォルトの名無しさん 投稿日: 02/04/06 03:23
>>638
素直にDBクラス使うとかはだめなの?
速さを求めるなら、自力よりは速いと思うけど。


646 名前: デフォルトの名無しさん 投稿日: 02/04/06 03:31
>>638
漏れは>>645に禿同なのだが、とりあえず置いておく。

データがシーケンシャルなら、まとめて読み込む。
ランダムなら、必要な箇所のみ読み込む。
どちらにしても、システムコールの呼び出し回数を少なく押さえる事を考慮する。

但し本当に速度を求めたいなら、両方書いて速度を比較しる。


647 名前: デフォルトの名無しさん 投稿日: 02/04/06 04:13
>>643-644
98と2kがあって、98のほうで遊んでみようかと思ってたんですけど、メインの2Kでやって
問題無いですかね。
今まではPerlしかやってないので。


648 名前: デフォルトの名無しさん 投稿日: 02/04/06 05:21
>>647 やってみればわかることをイチイチ聞くな。


649 名前: デフォルトの名無しさん 投稿日: 02/04/06 06:07
ていうか
>Cを勉強中はブルースクリーンになってしまうことが多い
初めて聞いた


650 名前: デフォルトの名無しさん 投稿日: 02/04/06 08:15
>>647
2kでブルースクリーンになることは稀だと思うぞ。
95系だとOS道連れに死んでくれるからやめておけ。


651 名前: デフォルトの名無しさん 投稿日: 02/04/06 09:13
>>624
もう解決しちゃってるぽいけど、一応。
>>628が書いてるように、Cコンパイラは、コンパイルする時、
ちゃんと「どんな型のポインタなのか」を意識しています。
char *char_p = 0;
int *int_p = 0;
double *double_p = 0;

int_p += 10;
char_p += 10;
double_p += 10;

printf("char_p=%p\n",char_p);
printf("int_p=%p\n",int_p);
printf("double_p=%p\n",double_p);

上の3つの表示結果、それぞれ違うわけね。

で、>>625がたまたまうまく動くマシンというのは、例えばi386互換
CPUで、アドレス幅とintのサイズがたまたまどちらも32bitで同じになってる時だね。
int *p;

printf("pのサイズは%dバイト\n",sizeof(p));
printf("*pのサイズは%dバイト\n",sizeof(*p));
(ほんとはsizeof()が返す値は「バイト」じゃなくて、charのサイズの何倍なのか・・・らしい?)
int *pをchar *pとか、double *pとか、char **pとかに変えて実験してみよう。


652 名前: デフォルトの名無しさん 投稿日: 02/04/06 09:17
>アドレスのアドレスはアドレスなワケで
全然違う。それに今はなしているのはポインタの話だ。
char *a; int *b; double *c; int **d;
とかあってこれらのポインタとしての値(値は事実上アドレスといってもいい)が等しくても
*で逆参照したときはそれぞれの型に従ってその変数の値が取り出させる。

ポインタがあることでビットオーダー、バイトオーダーとかその変数がどれだけのメモリを
割り当てられているのかなどプログラマが管理しなくてすむようになっている。

もう一度強調する。ポインタはアドレスではない。
実装の仕方は規定には無いので嘘にナル可能性もあるが事実上は
「アドレスと型情報の2つ併せて」ポインタ

>それについて詳しく載っているサイトや本はありますか?
この板でもよくあがる前橋和弥「C言語ポインタ完全制覇」がいい。語り口に癖があるので
嫌いな人はだめかもしれないけど。Hpもあるんだけどそこ読んで口調が嫌いじゃなければ
読んでみる価値がある。

ttp://member.nifty.ne.jp/maebashi/programmer/pointer.html


653 名前: デフォルトの名無しさん 投稿日: 02/04/06 09:21
>>652
struct test
{
int *a;
char *b;
};

test.a = (int *)0x00001f;
test.b = (char *)0x00001f;

疑似共用体。


654 名前: デフォルトの名無しさん 投稿日: 02/04/06 09:44
>変数にアドレスを格納しきれないとき、エラーが起きる。例えばintをcharにしたときとか。
>#これでいいのかな?

たぶん誤解しているので説明する。
普通、アドレスはアドレスなのでint *のポインタの「値」もchar *のポインタの「値」も
サイズは同じであることが多いだろう(保証されているわけではない)。だから桁あふれとかで
格納しきれないというようなイメージを持っているのなら全く理解していないことになる。

>コンピュータはどこからデータなのかどうやって分かるんですか?
ポインタ=アドレスと思っているのが間違い。
アドレスからデータを取り出すためにポインタがある。アドレスだけ渡されてもコンピュータは
(プログラムは、コンパイラは?どの表現がベターかわからないけど何となくわかるよね)
どのように値を取り出せばいいのかわからない。例えばintという型がわかればそのアドレスから
sizeof(int)分のサイズを読み込んでintとして扱う。


655 名前: デフォルトの名無しさん 投稿日: 02/04/06 10:26
registerやvoratileなどと言う予約語がありますがあれはどういうときに使うのですか?

またunionと言う共用体がありますがあれはstructと言う構造体とはどこが違うのでしょうか?

また関数ポインタと言うのは変数にポインタを持っている関数と言うことでよいのでしょうか?
void *function(*var1, *var2){};
というように、
プログラミング言語Cを見ても関数ポインタのことはさっぱりです。

また、プログラマから見たOSはAPIだ、と聞いたことがありますがあれはドいうことなのでしょうか?
プログラム書くときにAPIを使いこなせないとそのOSのプログラムはかけないと言うことでよいのでしょうか?
WINDWOSでプログラムするときにはWIN32を皆さんは暗記はしなくてもイメージは覚えているのでしょうか?
その上でプログラム上必要な関数は自作するのでしょうか?
どんな命令を作って、どんな命令をAPIから拾ってくるか、と言うイメージがうまくできません。
なかなか初心者以前の入門者の質問で申し訳ございませんがお答えいただけましたらよろしくお願いいたします。

たくさん質問があって申し訳ございませんが、ご回答よろしくお願いいたします。


656 名前: デフォルトの名無しさん 投稿日: 02/04/06 10:35
>>655
register:レジスタを変数に割り当てる−>メモリからのロードが必要なくなるので高速に。制限あり。
voratile:最適化を行わない変数。メモリマップドIOなどの場合必須。

共用体:>>653参照。

関数ポインタ:全然違う。
関数のアドレスを指すことのできるポインタ。
http://www2.muroran-it.ac.jp/circle/mpc/qanda/prog0000.html

OSはAPI:そのまんま。プログラマから見てOSは巨大なライブラリである。

イメージ:?そう言うAPIがあったことだけは記憶している。後はリファレンスを検索。

自作:当たり前です。他に誰が作ってくれると?




657 名前: デフォルトの名無しさん 投稿日: 02/04/06 10:36
>>656
変数をレジスタに割り当てるだな・・・。鬱。

総評としては「検索くらいしろ。Cの参考書くらい読め。」ってとこかな?


658 名前: デフォルトの名無しさん 投稿日: 02/04/06 10:42
>>656様。
registerやvoratileはアプリ屋などでは使用しているのでしょうか?
私は使用したことがありません。
関数ポインタも同じです。

また、APIですがWindowsでインターネットやりたくてもネットにつないでも、
その先ブラウザソフトがないとWebが見れないのと同じで、プログラムするときにAPIでネットにつなぐAPIがあっても、その先ブラウザ用のプログラムを自分で用意する(自分で書く)必要があると言うことでよいのでしょうか?
なかなかうまくイメージできません。
昔M$のDMでシェアウェアなどは普通、APIを組み合わせて普通は作るとありましたが、あれは本当のことなのでしょうか?


659 名前: デフォルトの名無しさん 投稿日: 02/04/06 10:49
>>658
上:アプリ屋って・・・何さ?

下:
最近のWindows環境では話が変わってきたけどね。
一番浅い部分で話すとWindowsAPIはprintfなどと同じ「関数」である。
よってWindowsプログラムはすべてAPIの順列である。

最近のWindowsでは各種機能のコンポーネント化が進んできてIEの機能を
まるまる利用できたりもする。

CがC++に進化したようにWindowsも手続き型からオブジェクト指向型に進化していると言える。


660 名前: デフォルトの名無しさん 投稿日: 02/04/06 11:43
registerとautoは指定したことありませんなぁ。


661 名前: デフォルトの名無しさん 投稿日: 02/04/06 11:54
> 変数をレジスタに割り当てるだな・・・。鬱。

どっちでもいいんだけどね。

あと、「割り当てる」じゃなくて「割り当ててほしいというヒントをコンパイラに
伝える」だな。
まあ、コンパイラが最適化をするときにはこの修飾子は無視されると思う。


662 名前: デフォルトの名無しさん 投稿日: 02/04/06 12:07
volatile(voratileじゃないぞ)は揮発性という意味がある。
使いどころは、マルチスレッドプログラム(あるいは割り込み処理があるプログラム)
において変数が非同期に書き換わる可能性がある場合、だな。
メモリマップトIOも非同期に書き換わる変数の一例だね。

メインループ:
volatile int muststop = 0;

while( muststop == 0 ){ // check stop flag
doProcess();
}

割り込み処理:
interrupt_routine(){
  muststop = 1;
}

てな場合に、muststop変数をvolatile宣言しておかないと、
コンパイラの最適化によって、メインループがmuststop変数のチェックを
しなくなる可能性がある。

変わりネタとしては、コンパイラの最適化にバグがあると疑わしい場合に、
最適化を妨げるために使うとか。


663 名前: デフォルトの名無しさん 投稿日: 02/04/06 12:24
>655
前橋マンセーと思われると何だけど
ttp://member.nifty.ne.jp/maebashi/programmer/pointer.html
の下の方に関数へのポインタの話があるので読んでみて。

それから初心者以前の入門者などと名乗っているけどそうなのかい?
もし本当に初心者というなら疑問に思うことが的はずれというか何というか。
やっと分数を覚えたくらいの学力で微分方程式の解法のことを心配していても
しょうがないでしょ。

もし予防線張っといて入門者といっているだけならもう一度K&Rを読みなさい。


664 名前: デフォルトの名無しさん 投稿日: 02/04/06 12:25
>>661
って優香、registerはコンバイラの最適化を妨げることさえある。レジスタの
多いRISC系CPUだとあまり問題にならないだろうが、x86のような貧弱な
レジスタセットだと、思い切ってコンパイラに任せてしまった方がいい結果が
得られることが多い。


665 名前: デフォルトの名無しさん 投稿日: 02/04/06 12:28
だからヒントに過ぎないと・・・
レジスタ少ないCPU用の最適化コンパイラは、まず無視するから問題なし。

まあ、特別な事情が無い限り付ける必要はないね。


666 名前: デフォルトの名無しさん 投稿日: 02/04/06 13:08
>>665
inlineもヒントですね。C++だけど。
registerはたまに強制するコンパイラがあると聞きましたが。でも強制しても、
手持ちのレジスタを使い切ってしまえばどうせ使えなくなるけど。

話は変わるけど、コンパイラが吐き出すアセンブリ出力を見ていると面白いね。
僕はC言語をそうやって勉強しました。今もそうしています。


667 名前: sage 投稿日: 02/04/06 13:59
突っ込みどころが多すぎてどこから手をつけるべきかわからんな。



668 名前: デフォルトの名無しさん 投稿日: 02/04/06 14:12
>>667
なにか言いたいけど、反論が怖くて何も言えない人。


669 名前: デフォルトの名無しさん 投稿日: 02/04/06 14:13
>>667
あんたがどの発言を指してるかわからないばっかりに>>655-666全員ドキドキだ。


670 名前: デフォルトの名無しさん 投稿日: 02/04/06 14:49
>667
663だ。いいたいことがあるならはっきり言え。

俺はいつでも訂正する用意がある。
無視ぶっこいて逃げ出す用意もある。

待ってるぞ。


671 名前: デフォルトの名無しさん 投稿日: 02/04/06 14:52
>>670
いや、多分あんたじゃない。突っ込むに値しないし。


672 名前: 667 投稿日: 02/04/06 14:55
思わせぶりに言ってみただけです。
ごめんなさい。


673 名前: デフォルトの名無しさん 投稿日: 02/04/06 16:03
俺は例の初心者に対して言っていたのだとてっきりおモってたんだが(藁


674 名前: デフォルトの名無しさん 投稿日: 02/04/06 18:21
まあまあみんなマターリしようよ。
せっかくvoidタンも去ってくれたんだし。


675 名前: デフォルトの名無しさん 投稿日: 02/04/06 18:36
sizeof(int *)とsizeof(char *)が違う処理系もあり得ると、文献で
見たことがある。

実物は無いけど


676 名前: デフォルトの名無しさん 投稿日: 02/04/06 18:44
>>675
えぇーっ!!??


677 名前: デフォルトの名無しさん 投稿日: 02/04/06 19:02
ある人に、ハードディスクを逆回転させることができると
聞いたのですがやりかたがわかりません。教えてください。
よろしくお願いします。


678 名前: デフォルトの名無しさん 投稿日: 02/04/06 19:13
>>675
何の文献だそりゃ?


679 名前: デフォルトの名無しさん 投稿日: 02/04/06 19:26
民明書房館


680 名前: デフォルトの名無しさん 投稿日: 02/04/06 19:29
>>677
ハァ?マジで知らないの?


681 名前: デフォルトの名無しさん 投稿日: 02/04/06 19:30
>>677
手でまわす


682 名前: 677 投稿日: 02/04/06 19:58
教えてください。マジでしらないです。。


683 名前: Disca ◆NAfP6znE 投稿日: 02/04/06 20:01
>>645
>>646
ありがとうございます。自力でデータベースプログラムを作ります。
シーケンシャン方法なので、一度にファイルごとバッファに入れようと考えています。



684 名前: むぅ-01Fb ◆Muu/FbRQ 投稿日: 02/04/06 20:05
(´∀`)<シーケンシャン方法なので、一度にファイルごとバッファに入れようと考えています。)

  むぅ?
    ∩∩ 
   (゜x゜ )○



685 名前: デフォルトの名無しさん 投稿日: 02/04/06 20:30
(´-`).oO(メモリに全部読み込めるなら、なんで最初からそうしないんだろう・・・


686 名前: デフォルトの名無しさん 投稿日: 02/04/06 20:45
>>683 >>684
トリップ付きコテハンとはめずらしいな。
このスレでは初めて見た。


687 名前: ポインタ大好きおやじ 投稿日: 02/04/06 20:58
ガーン・・・ポインタ話が終わってしまったようだ・・・・・
もう少し早くPC復旧させればよかった。


688 名前: デフォルトの名無しさん 投稿日: 02/04/06 21:16
俺のポインタもコンパイルエラーを吐きそうです


689 名前: Disca ◆NAfP6znE 投稿日: 02/04/06 22:49
>>684
>>685
自爆(自笑)してしまいました。スマソ。


690 名前: Disca ◆NAfP6znE 投稿日: 02/04/06 22:55
今考えているのが、64KByteまでのデータだったら、
ファイルごとバッファに入れようかと考えています。
もし、64KByte以上だったら、数回に分けて(64KByteに区切って)バッファに格納して
各回ごとに処理をしようと考えています。

そこで質問なのですが、
http://www.bohyoh.com/CandCPP/C/Library/index.html
標準ライブラリで、ファイルのバイト数を収得する関数はありますでしょうか…?
MFCなら、_fstat などがありますが…。



691 名前: デフォルトの名無しさん 投稿日: 02/04/06 22:57
>>690
MFCじゃなくて標準ライブラリじゃない?


692 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:10
>>690
ふつー、fseek()とftell()だけど、なんで分割読み込みするのに
ファイルサイズを知る必要があるのかわからん。
while(fread(...))
で済むんでわ?


693 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:18
関数のプロトタイプにも仮引数名を書いた方がいいですか?


694 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:20
>>693
int copy_some_data(char* dst, char* src);
int copy_some_data(char*, char*);

どっちがいい?



695 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:22
>>694
わかりやすいのは上だけど、格好良いのは下ですね。


696 名前: sage 投稿日: 02/04/06 23:22
微妙。
でもだいたいはいらない。


697 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:27
>694
前者に決まってる
後者を薦めるのはツールを使えない愚か者


698 名前: Disca ◆NAfP6znE 投稿日: 02/04/06 23:29
>>691 >>692
ありがとうございます。
ちなみに、64KByte以下の場合ですが、
あまり効果はないのですが、ファイルサイズがわかっていたら
最初に確保するバッファサイズの節約になるかと思ったためです。

>>692
ftell ありがとうございます。今まで以下のでやろうとしていたのが恥ずかしいいくらいです。

void main(int argc, char *argv[], char *envp[])
{
  FILE *pFile, *pHead, *pTail;
  if((pFile= fopen("data.txt", "rb")) == NULL)
  pHead= pTail= pFile;

  fseek(pHead, 0, SEEK_SET);
  fseek(pTail, 0, SEEK_END);
  printf("%d Byte\n", pTail - pHead);
  fclose(pFile);
}
ちなみに結果は、0Byteです。
無理だろうとは思っていましたが…。


699 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:30
>>694
漏れも前者。
なんでかっつーと、関数の宣言をコピペするだけでいいので、楽だから。


700 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:31
>>699
あはは。
コピーした後にわざわざ変数名を消している俺は馬鹿だ(笑)


701 名前: 700 投稿日: 02/04/06 23:32
今だ!ゲットー


702 名前: 700 投稿日: 02/04/06 23:32
>>701
わりぃ、馬鹿なうえに邪魔までしてしまって。


703 名前: デフォルトの名無しさん 投稿日: 02/04/06 23:46
> int copy_some_data(char* dst, char* src);
int copy_some_data(char* dst, const char* src);
ちゃんとconstつけよう。


704 名前: デフォルトの名無しさん 投稿日: 02/04/07 00:17
>>703 char* ならそうでしょうね。

int convert_some_data(struct MyStruct* result, struct MyStruct* source, int condition);
int convert_some_data(struct MyStruct*, struct MyStruct*, int);

float inner_product(float x1, float y1, float z1, float x2, float y2, float z2);
float inner_product(float, float, float, float, float, float);

コードそのものがなるべくドキュメントであったほうがよいというハナシは
誰が言い出したんだっけな。


705 名前: デフォルトの名無しさん 投稿日: 02/04/07 00:31
くぬーす?



706 名前: デフォルトの名無しさん 投稿日: 02/04/07 02:56
おはつです
CでCGIを書こうと奮闘しているのですが
(鯖はrimnet、OSはFreeBSD Ver.3改)
とりあえず書いたら、IEでは問題ないのだけど
NS4.7/6.2で見ようとするとError500 Internal Server Errorでます
原因がわかりません。
教えてください
ttp://members.tripod.co.jp/mod5/enter.c.txt


707 名前: デフォルトの名無しさん 投稿日: 02/04/07 03:06
問題の切り分けをしようという気はないのか?
まずは"perl"で問題を再現させる最小のコード書いてみろ。
つか板違い


708 名前: デフォルトの名無しさん 投稿日: 02/04/07 03:25
>if(length>MAXLEN) {printf("CONTENT_LENGTH>MAXLEN\n");exit(0);}
たとえばこことか。

>buf=((s[++i]>='A') ? s[i]-'A'+10 : s[i]-'0');
こう、なんつーか、スゴいコードを書くんだな‥‥
4eとかは無視かい。




709 名前: デフォルトの名無しさん 投稿日: 02/04/07 03:41
>>678
C言語辞典だかそういう名前の本で、色々なハードウェアでの
型の大きさが一覧になっていた。

NECだか日立の見慣れない型式のハードウェアだったと記憶している
誤植かなとも思ったが、3とか4とかが混ざっていたので本当だったのでは


710 名前: デフォルトの名無しさん 投稿日: 02/04/07 10:46
プログラムとしてC言語の構文を覚えたりアルゴリズムやデータ構造を覚えたり、設計手法などにも目を通したのですが(プログラミング作法という書籍を購入してきて)プログラムができません。
基本情報処理資格も取得したのですが自分で1からは書けません。
会社には所属したことは無く、完全に独学で学んでおります。

私には何が足りないのでしょうか?
あきらめるしか方法が無いのでしょうか?

最近思っているのですが、作りたいものが無いのかもしれない、とも思ってきました。
入社して社会人としてプログラムしても良いのでしょうか?



711 名前: デフォルトの名無しさん 投稿日: 02/04/07 11:03
>>710
独学・趣味でプログラム作ると
1.作りたいものがある(≒解決したい問題がある)
2.適当に作ってみる
3.使ってみて不便な点をどんどん拡張
4.無理な拡張してプログラムが破綻
5.コードをいったん全部捨てて最初から作り直す(3.へ戻る)
っていうサイクルを繰り返して
企画・設計・コーディング・デバッグ・メンテナンスを
一通り覚えるもの(と思ってるん)だけど、
1.が欠けてるのはある意味致命的かも。
趣味でやるにはCは色気がなさ過ぎるので別の言語を試してみることをお勧めする。

あるいは無理してやりたいことを見つける必要はなくって
いっそ仕事としてやってみるといかも。
足りないのは実務経験だけみたいだから適切に仕事をあてがってもらえば
何とかやっていけると思うよ。
>アルゴリズムやデータ構造を覚えたり、設計手法などにも目を通したのですが
ここら辺の知識がまったくない厨房でも平気で会社入ってくるからね。


712 名前: デフォルトの名無しさん 投稿日: 02/04/07 11:04
>>710
そんな堅苦しく考えてたってプログラミングはできやしねーよ。
俺なんて授業がつまらないからゲームを作ったり、エロゲーのセーブデータを
書き換えようと常駐型バイナリエディタを作ってみたり。
作りたいものを作ろうとする気力も無いならば今すぐプログラマー気取りなんざ
やめちまえ。そういうのを厨房っつーんだよ。


713 名前: デフォルトの名無しさん 投稿日: 02/04/07 11:12
>>710
ああ、俺の友達にもいるよ。そう言う奴。
人のプログラムを改造して課題こなしてきたからプログラムの解析は得意。
今、お互い就職活動なんだ。
一緒に同じ企業に行ったんだよ。
『君の学科は情報系だけどどんなことしてるの?』
「あ、プログラミング。」
『いやいや、他にもさ・・・』
「えっと、プログラミング。」
勝てると思ったよ。


714 名前: 706 投稿日: 02/04/07 11:12
>>707
Perlは全くわかりません
>>708
http://www-cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/CCGI/
ここから丸パクリした部分です


715 名前: デフォルトの名無しさん 投稿日: 02/04/07 11:34
>>713
勝てるね。


716 名前: デフォルトの名無しさん 投稿日: 02/04/07 12:03
勝てるかどうかは>>713次第だろ。怪しそうだが。
>>710みたいなのは、デバッグ要員として意外と重宝されるぞ。


717 名前: デフォルトの名無しさん 投稿日: 02/04/07 12:46
あの構文木ってなんですか?
コンパイラと何か関係がありますか?


718 名前: デフォルトの名無しさん 投稿日: 02/04/07 12:48
>>717
ありますよ。構文解析の時に非常に有用。コンパイラ関係の本には必ず載ってます。



719 名前: デフォルトの名無しさん 投稿日: 02/04/07 13:25
俺含めて、勝ち組みってのはコーディングなんかしないね、実際。


720 名前: デフォルトの名無しさん 投稿日: 02/04/07 13:31
>719
フリーター業界の勝ち組みサンですか?


721 名前: デフォルトの名無しさん 投稿日: 02/04/07 13:36
>>719
かと言ってプログラマのお茶組んだりコピー取ったりは勝ち組とは言わないぞ。


722 名前: デフォルトの名無しさん 投稿日: 02/04/07 14:36
プログラムのトレースログを取りたいと思っています。
そこで質問なんですが
複数のプロセスから単一のファイルへの書き込みの定石みたいなものが
ありましたら教えてください。
一つのログ=1行です。
ファイルが壊れるのを一番恐れています。



723 名前: デフォルトの名無しさん 投稿日: 02/04/07 14:43
mutexかセマフォ(1)使え


724 名前: デフォルトの名無しさん 投稿日: 02/04/07 14:45
>722
stderrに出力してリダイレクト
歯痛制御なんぞOSに任せろ


725 名前: 710 投稿日: 02/04/07 16:16
わざわざお答えありがとうございました。
私は自分では、今まで作ったものは、リモートでの電源ON/OFFくらいしかありません。
win9xならまだしもwin2000やwinxpではadminでの場合しかネット越しに電源は落ちません。
話になりませんね。
もっと実用的なものを作る知恵がないのです。

明日にでも職安に行ってみます。
考えてばかりではいけませんので
今は職安混んでいて行くのいやなんですけどね。
就職浪人していていますが、無職だとろくなことを考えませんのでそろそろ仕事もしないといけないですし。
どうもありがとうございました。



726 名前: 710 投稿日: 02/04/07 16:16
あげてしまいました。
失礼いたしました。


727 名前: デフォルトの名無しさん 投稿日: 02/04/07 23:07
int fd, nread; /*fdはファイルデスクリプタとして使用*/

/*何らかの処理*/

ioctl(fd, FIONREAD, &nread);  ←?


というような記述があるプログラムの中で出てきたのですが、
解説がなく何をやっているのかわかりません。



728 名前: デフォルトの名無しさん 投稿日: 02/04/07 23:08
この ioctl(fd, FIONREAD, &nread);  の行は
なにをやっているのか教えてください。


729 名前: デフォルトの名無しさん 投稿日: 02/04/07 23:42
http://www.google.co.jp/search?q=C%8C%BE%8C%EA%81@ioctl&hl=ja&btnG=Google+%8C%9F%8D%F5&lr=
検索汁!(`д´)


730 名前: デフォルトの名無しさん 投稿日: 02/04/07 23:52
>>727
一応ヒントを出すと、そのfdが何に繋がってるかによって、
違うんだなーこれが。
該当するデバイスのmanか、デバイスドライバのソースを見ると
わかるよん。


731 名前: 727 投稿日: 02/04/08 00:03
ども 解りました。kbhitと同じような働きをするのですね。
”標準入力にデータがあるかを調べるのでは無く、fdに関連づけられている先の物(?)を調べる。”
ということであってますか?


732 名前: 田部 投稿日: 02/04/08 09:19
age


733 名前: デフォルトの名無しさん 投稿日: 02/04/08 09:57
>>693
(;´д`).。oO( 原人かよ! )
てか、なんのために関数プロトタイプを宣言するのか、小一時間(略)


734 名前: デフォルトの名無しさん 投稿日: 02/04/08 12:29
>>706
デバグの方法を先に覚えてから
CでCGIしてくれ〜
ってか、なんつーか、
(;´д`).。oO( core 消せ )


735 名前: デフォルトの名無しさん 投稿日: 02/04/08 12:42
カレントドライブ内のファイル名を表示
させたいんだけど、どうすればいい?


736 名前: デフォルトの名無しさん 投稿日: 02/04/08 15:04
>>735

dir
ls


737 名前: デフォルトの名無しさん 投稿日: 02/04/08 15:15
>>735
opendir
findfirst
あたりで検索してみれ。


738 名前: 名無し 投稿日: 02/04/08 18:53
明快C言語(入門)をマスターしたら
次は何をしたらいいでしょう?ステップアップするには??



739 名前: デフォルトの名無しさん 投稿日: 02/04/08 18:55
>>738
K&Rを穴が開くほど嫁。


740 名前: 735 投稿日: 02/04/08 19:28
>>737
サンクス!


741 名前: デフォルトの名無しさん 投稿日: 02/04/08 19:48
>>738
組め、悩む前にアプリを作れ。
出来たら公開しろ、ソース付きで公開しろ
そして叩かれて強くなれ
#俺はやだけど(w


742 名前: デフォルトの名無しさん 投稿日: 02/04/08 19:52
まともなアプリじゃなきゃ、誰もソースなんて見ないけどな。


743 名前: 738 投稿日: 02/04/08 20:17
取りあえずK&R読みます。
まだ、アプリつくれないんで
他にこれやれってのあります?


744 名前: デフォルトの名無しさん 投稿日: 02/04/08 20:21
つまり、ベースィックはC言語でつくられたのであり、
C言語は神様ですか?


745 名前: デフォルトの名無しさん 投稿日: 02/04/08 20:24
MASMは最初、Pascalで書かれていました。
神様はPascalです。


746 名前: デフォルトの名無しさん 投稿日: 02/04/08 20:33
C言語を勉強したきゃ人間コンパイラーを一度してみる
こったな。つまり、Cのコードをアセンブラーに手で
やってみろ。その逆も有効だね。


747 名前: デフォルトの名無しさん 投稿日: 02/04/08 20:54
スレ違いだけど、アセンブラ勉強するときに
これ読んどけ!って本はなにかなあ。

それとも本なんて使わないものなのだろうか?


748 名前: デフォルトの名無しさん 投稿日: 02/04/08 21:00
>>747
敢えて言うなら仕様書かと。


749 名前: デフォルトの名無しさん 投稿日: 02/04/08 21:28
アセンブラ未経験なら 「はじめて読む486」。
多少慣れているなら、仕様書。


750 名前: デフォルトの名無しさん 投稿日: 02/04/08 22:57
>>743
まだアプリが作れない?
アプリ作りながら学べやー。



とりあえずダンプ作れ。ダンプ、これ基本。


751 名前: デフォルトの名無しさん 投稿日: 02/04/08 22:58
>>750
自動車工学は専門外なので無理です。


752 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:08
Cは神様です
そのCを作った>>1はもはや語るまでもありません。
そう俺のオナペット(略)


753 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:15
読み出し専用モードでオープンしたファイルを、"クローズせずに"書き込み専用にモードを変更することはできますか?


754 名前: 753 投稿日: 02/04/08 23:15
環境はLinux+gccです。


755 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:17
「はじめて読む486」
って、プロテクトモード系の話が中心やなかった?
セグメントディスクリプタとか、IDTとか、V86モードとか。
アセンブラ未経験にはあまりおすすめできないと
思うのだが如何。


756 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:17
freopen()


757 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:17
>753
なぜr+で開いておかないのか小一時間(略


758 名前: 753 投稿日: 02/04/08 23:18
>>756
それは内部でファイルをクローズしますよね?


759 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:19
>>757
あ!! r+があったんだ・・・・・
+ってw+とa+だけと勘違いしていました・・・・
ありがとうございます。


760 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:19
初めてよむ8086っていいよ。
俺でもわかったもん


761 名前: 名無しさん@Emacs 投稿日: 02/04/08 23:33
C言語1日目です。これからもよろしく。

#include <stdio.h>

int main()
{
puts("\x1b[0;1;33m信号が黄色で表示します");
red();
blue();
puts("\x1b[0m表示を既定の属性に戻しました");

return 0;
}


void red(void)
{
puts("\x1b[0;1;31m赤です");
}

void blue(void)
{
puts("\x1b[0;1;34m青に変わりました");
}

これをgccでコンパイルすると
example003.c:15: warning: type mismatch with previous implicit declaration
example003.c:6: warning: previous implicit declaration of `red'
example003.c:15: warning: `red' was previously implicitly declared to return `int'
example003.c:20: warning: type mismatch with previous implicit declaration
example003.c:7: warning: previous implicit declaration of `blue'
example003.c:20: warning: `blue' was previously implicitly declared to return `int'
と出るのですがどういけないのでしょうか。
書籍のを丸写しのはずいなんですが…。


762 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:34
C言語の中級者と上級者の違いはなんですか?


763 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:36
>>761
関数のプロトタイプがないから。


764 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:36
Cを極めてその限界にぶち当たって
他言語に鞍替えすることができたら上級者。


765 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:37
>>762
リストがなんたるか分かる。とリストが実装できる。の差。
もうちょっとメタに。
あるアルゴリズムの仕組みが理解できる。とあるアルゴリズムを使って自分の目的を達成できる。



766 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:38
>>761
mainは一番最後に。一応基本。


767 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:40
>>766
そうか?


768 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:40
>>762
上級者じゃねぇからわかんねぇよ。
俺はまだ初心者でいたいね。気が楽だし。


769 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:41
>>766
それは違うと思うが・・・


770 名前: 761 投稿日: 02/04/08 23:41
>>763,766
さんくす。
mainを最後に持ってきたら無事出来ました。

> mainは一番最後に。一応基本。
そうなんですが。書籍のサンプルには>>761にように
書いたあるのですがね。



771 名前: 761 投稿日: 02/04/08 23:42
う、>>767,769さん。
違うのですかね…。


772 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:42
>>770
プロトタイプもきちんと書いておけよ。
複数のファイルにわけることが多いんだから。


773 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:42
>>770
無事っつーか、mainの位置よりプロトタイプ書く方がはるかに常識なんで、ぜひ書いてくれ。


774 名前: 773 投稿日: 02/04/08 23:43
仕事的にな。


775 名前: 767 投稿日: 02/04/08 23:43
>>771
「一応基本」に対して「そうか?」とレスしただけ。
俺は一番上に書いているけどな。
Apacheなんかはかなり下の方だね。一番下じゃないけど。


776 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:44
たしかcだとプロトタイプのない関数は
int func();と解釈されるので、戻り値がvoidで再定義をした扱いになっているんだと思う


777 名前: 761 投稿日: 02/04/08 23:45
>>772
> プロトタイプもきちんと書いておけよ。
まだ、それは習ってませんね。
索引でプロトタイプを引いてみて調べてみます。



778 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:46
>>777
関数の宣言をコピペしてセミコロンをつけるだけ。


779 名前: 761 投稿日: 02/04/08 23:49
>>778
> 関数の宣言をコピペしてセミコロンをつけるだけ。

void blue(void);
void red(void);

これを付ければ出来ました。
本では何も触れられてないが、どうしてだろう…。



780 名前: 773 投稿日: 02/04/08 23:49
>>777
あと、関数への引数についても勉強しなけりゃいけないだろうが、
まぁ焦らず少しずつでもいいから確実に覚えていくが吉。
がんばれよ〜。
俺はもうソフトやめて畑耕すからよ〜。


781 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:50
>>779
関数のプロトタイプはANSIが標準化したものだからもっと昔に書かれた本とか?
・・・・・なわけないか。


782 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:52
.cに書くプロトタイプなんて牛乳に入れたクリープみたいなもんだ。


783 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:54
>>768
お前じゃねえよ


784 名前: 761 投稿日: 02/04/08 23:54
>>781
技評 はじめてのC言語 完全入門 2001/6



785 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:54
牛乳にクリープ入れると、コクがでておいしくなるよ。


786 名前: デフォルトの名無しさん 投稿日: 02/04/08 23:55
>>782
ん?ヘッダーファイルを別途用意してそれにかけってこと?
小さなプログラムなら.cに書いてもいいんじゃネーノ?


787 名前: 773 投稿日: 02/04/08 23:57
>>782
まぁ極めて単純であるが故に、だな。


788 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:01
どっち派?

int hoge( void )
{
return hoge();
}

int hoge( void ){
return hoge();
}

漏れは後者



789 名前: 773 投稿日: 02/04/09 00:02
俺も後者。


790 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:04
>>788
後者。
自然に)の後で改行するね。ifやforの場合は改行しないけど。


791 名前: 790 投稿日: 02/04/09 00:04
間違った。前者。


792 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:05
>>788
それは一列という意?
だったら
int hoge(void)
{ return hoge(); }


793 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:05
漏れは前者。

ところで、
int main() or void main()
じゃなくて、ただ
main()
じゃだめ?



794 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:06
ごめん。あげちゃった。


795 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:06
俺mallocしてfreeしない派


796 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:06
>>793
戻り値がint型でも明示的に書いた方がよくないか?


797 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:07
俺fopenしてfcloseしない派


798 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:08
俺void main(void)派


799 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:10
俺関数でchar *p;してreturn p;する派


800 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:10
俺、pthread_mutexattr_initしてpthread_mutexattr_destroyしない派


801 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:11
俺CでOO派


802 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:12
俺は>>790氏と同じ。
if,for,whileとか構造体定義は改行無しで関数は改行あり



803 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:13
俺Cはyacc/lexでしか書かない派


804 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:14
俺mainの中全部インラインアセンブラ派。


805 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:16
if (hoge)
  {
    hoge;
    fuga;
  }




806 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:17
if(ahya){
ahyahya();
}
else{
giko();
}

派。

} elseの方がよいらしいけど。


807 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:18
>>796
やっぱりそうなのかな?
ってか、変なことになる前にそうするべきですね。

ちなみに、基本的に
if (hoge)
{
hoge;
fuga;
}
派だけど、1つだけなら
if (hoge)
fuga;




808 名前: 773 投稿日: 02/04/09 00:19
Cら樺派、なんつってな。







スマソ、もう寝るわ。


809 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:19
>>807
俺も。
ifとelseをいっぱい書くときは改行すらしない。


810 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:22

if(foo);
 bar;



811 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:23
elseをつけると

if (hoge)
  {
    hoge;
    fuga;
  }
else
  {
    foo;
    bar;
  }



結構見やすいな。


812 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:23
    if (x == 0) {
} else if (x == 1) {
} else if (x == 2) {
} else {
}

こういう書き方・・・しない?


813 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:23
ついでに。単文の場合は改行しない。

if (hoge) hoge;
else fuga;



814 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:24
>>812
よくするみたいだけど俺は嫌い(わがまま)


815 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:25
>>812
激しくしない。合わせても結局後で桁を変えないと
いけなくなる罠。しかも変えるのを忘れる罠。


816 名前: 814 投稿日: 02/04/09 00:27
あ、} elseという書き方をよくするという意味ね。


817 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:31
漏れはしない。
>>811に一票。


818 名前: 812 投稿日: 02/04/09 00:32
>>814
   if (x == 0) {
}
else if (x == 1) {
}
else {
}

これでもいい。else ifと先頭のifをそろえるかって事


819 名前: Ritchie先生風に 投稿日: 02/04/09 00:37
if(exp) {
 
} else if(exp) {
 
} else {
 
}

switch(exp){
case const-exp:
case const-exp:
default:
}


820 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:51
>>788
漏れ、できるだけ行数けちる派。
つまり後者。
しかたなく単独で { 書くケースは、
int hoge() {
 au();
 {
  int tmp;
 }
}
の3行めみたいなとき。


821 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:54
'モナー ギコ'
という文からA=モナー、B=ギコってかんじにスペースで区切った文字列を読み込みたいんですけど、
この場合fgetsするのかfgetcするのかはたまたsscanfするのか。
どれがいいんでしょう?
一長一短なかんじがして、なんか混乱しますた。


822 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:56
>>821
strtok()


823 名前: デフォルトの名無しさん 投稿日: 02/04/09 00:59
>>822
strという文字配列に入れるとしたら
strtok(str, ' ');
ということ?


824 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:03
fgets(buf, sizeof(buf), fp);
pMonar = strtok(buf, ' ');
pGiko = strtok(NULL, ' ');



825 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:04
>>821
fetgs()
sscanf()


826 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:04
K&Rの95ページの関数getopで、
ungetchを呼び出すとき何故EOFだけ除く必要があるのか教えてください。


827 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:11
  ∬∬∬∬    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ∬ ´Д `∬  < 改革に反対するなら、わたしの方から自民党を打ち壊す!
  ( つ[賞]つ    \__________
  | | |
  (__)_)


828 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:16
ungetchでEOFをもどすことはできない。



829 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:16
つーか、なんでEOFだけ除いているのか?を自分で考えられないようであれば
K&Rを呼んでいる意味はない。



830 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:27
以前、MySQLについて質問したDiscaです。
C言語(Win環境)でMySqlを動かしたいのですが、
具体的なサイトを教えていただけないでしょうか…。
お願いいたします。


831 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:30
>>830
http://www.mysqlfromc.net/


832 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:32
>>830
ちゃんとぐぐるった?
http://www.google.com/search?hl=ja&q=mysql+c%8C%BE%8C%EA&lr=lang_ja


833 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:34
ファイルの内容をすべて消す方法はwやw+で開く以外にありますか?


834 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:39
unlink


835 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:45
>>834
man 2 unlinkで調べてみました。
これをオープンしている間に使えばよいのですね。
ありがとうございました。


836 名前: 835 投稿日: 02/04/09 01:47
ということはwやw+で開いた時はopen()した後に自動的にunlink()を使っているのかな。


837 名前: デフォルトの名無しさん 投稿日: 02/04/09 01:57
>open()した後に自動的にunlink()を使っているのかな。
open後のunlinkと、wでfopenするのは同じではない。


838 名前: デフォルトの名無しさん 投稿日: 02/04/09 02:58
ExcelやWordのようなソフト(アイコンをダブルクリックで起動して、
上書き保存ボタンとか終了ボタンとかあるやつ)はCだけで作れるものでしょうか?
今、LSI-C試食版で勉強中ですが文字ばかりなのでこの先不安です。
そういうソフトはVC.NETのC++で作らないとダメですか?


839 名前: デフォルトの名無しさん 投稿日: 02/04/09 03:03
Cだけじゃ無理だけど、OSのシステムコールとか使えばできる


840 名前: デフォルトの名無しさん 投稿日: 02/04/09 03:19
>>838
可能です。


841 名前: デフォルトの名無しさん 投稿日: 02/04/09 03:31
関係ないけどおまえら元気か?


842 名前: 名無しさん@お腹いっぱい。 投稿日: 02/04/09 03:44
>>841
なんとかw


843 名前: デフォルトの名無しさん 投稿日: 02/04/09 04:00
>>841
最近すぐ元気がなくなる上になかなか立ち直らない


844 名前: デフォルトの名無しさん 投稿日: 02/04/09 04:26
>>841は自殺する気


845 名前: デフォルトの名無しさん 投稿日: 02/04/09 04:35
>>843
早めの5月病ってところじゃないか?


846 名前: Disca ◆NAfP6znE 投稿日: 02/04/09 10:08
>>831 見れないです(日本語しかよめないです、スマソ)
>>832 グーグりました。
なかなか、C言語でのMySQLのAPIライブラリ解説が無くて…。
良いサイトがあればお願いします。



847 名前: デフォルトの名無しさん 投稿日: 02/04/09 10:59
>>846
日本でMySQLといえばhttp://www.mysql.gr.jp/
マニュアルの翻訳も載ってます。API解説は
http://www.mysql.gr.jp/jpdoc/3.23.x/manual.ja_Clients.html#C
のあたり。

っていうかスレ違いの気が…


848 名前: 847 投稿日: 02/04/09 11:00
スレ違いついでにもうひとつ、Soft Agencyのサイトも。
http://www.softagency.co.jp/mysql/index.html


849 名前: デフォルトの名無しさん 投稿日: 02/04/09 12:01
>>839氏と>>840氏ではどちらが正しいのだろう・・・


850 名前: デフォルトの名無しさん 投稿日: 02/04/09 12:04
>>838
Cを使えばなんだってつくれるぞ!
UNIX(ワークステーション)っていうOSはC言語で作ったんだから。
Cコンパイルしてできるアセンブラの知識が有れば、
なんだって作れると思われ


851 名前: デフォルトの名無しさん 投稿日: 02/04/09 12:21
>>849
Windowsプログラミングのバイブルといわれていた
「プログラミングWindows」はいまだにCでかかれている。


852 名前: デフォルトの名無しさん 投稿日: 02/04/09 12:23
>>849
両方正しい。よく読んでケロ


853 名前: おしえて〜 投稿日: 02/04/09 12:28
整数の引数のビットを文字列として表示するってどうやればいーの?
たとえばbit(60);ってやったら
11-1100
みたいに4文字ごとに区切り文字を入れろって言われたんだけど・・・


854 名前: デフォルトの名無しさん 投稿日: 02/04/09 12:30
>>853
宿題はえれなちゃんに聞けや。
http://pc.2ch.net/test/read.cgi/tech/1011722640/l50


855 名前: 853 投稿日: 02/04/09 12:31
はーい、逝って来ます


856 名前: デフォルトの名無しさん 投稿日: 02/04/09 14:41
unsigned な変数とsignedな変数を相互に変換して元の値が保証される?
unsigned char a = 0xff;
signed char b = a;
a = b;
printf("%d\n",a);
とかやったら255になることは保証される?


857 名前: デフォルトの名無しさん 投稿日: 02/04/09 15:56
あのーC言語を勉強するために家のPCにもソフトいれたいのですが
なにがありますか?


858 名前: デフォルトの名無しさん 投稿日: 02/04/09 15:58
>>856
自分で試せ

unsigned char a = 0xFF;
signed char b = a;

if( b != 255 )
printf( "(゚Д゚)ハァ?\n" );
if( (unsigned char)b != 255 )
printf( " (゚Д゚)ハァ?(゚Д゚)ハァ?\n" );



859 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:01
>>856
fj.comp.lang.cで片山@PFUさんに聞いてくださいです。


860 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:04
>>857
検索かければよかろう。


861 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:09
microsoft visualC++
これでイイの?


862 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:14
>>857
Borland のC++コンパイラを使いな。無料。
Cmagazineに付いてるよ。


863 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:23
C マガ買わなくてもここから落とせばいいような。
http://www.borland.co.jp/cppbuilder/freecompiler/


864 名前: 857です 投稿日: 02/04/09 16:29
>>862-863

ありがとうございました


865 名前: デフォルトの名無しさん 投稿日: 02/04/09 16:32
僕のPCにはコンパイラが標準で付いていました。


866 名前: Disca ◆NAfP6znE 投稿日: 02/04/09 19:06
>>846
>>847
ありがとうございます。
そこ、グーグリました。が…きちんと最後ま探していなかったです。
私はまだまだ検索暖炉と言う事が判明しました。終わり


867 名前: 7 投稿日: 02/04/09 19:07
Borland のC++コンパイラ


868 名前: 7 投稿日: 02/04/09 19:10
Borland のC++コンパイラをPCに いれたんですけど
メモ帳でプログラム書いて読み込もうとするんですけど
ファイルが見つかりませんってでますどうして?




869 名前: デフォルトの名無しさん 投稿日: 02/04/09 19:14
ネタですか?
ソフトの使い方ならソフトウェア板に行ってください


870 名前: 7 投稿日: 02/04/09 19:31
>>869
すいませんでした。もう2度ときません。
あとあまり調子乗らないほうがいいとおもいますよ


871 名前: デフォルトの名無しさん 投稿日: 02/04/09 19:39
>あとあまり調子乗らないほうがいいとおもいますよ
あまり調子乗らないほうがいいとおもいますよ


872 名前: デフォルトの名無しさん 投稿日: 02/04/09 19:49
>>7
環境変数のPATHを設定しましたか?


873 名前: デフォルトの名無しさん 投稿日: 02/04/09 20:25
>>870はバグってますか?



874 名前: デフォルトの名無しさん 投稿日: 02/04/09 21:06
>>873
仕様です。


875 名前: デフォルトの名無しさん 投稿日: 02/04/09 21:31
ちょっと拝見したが、
やはり、Linuxはむずいな!
まったく理解できん......
>>1は分かるの???


876 名前: デフォルトの名無しさん 投稿日: 02/04/09 21:39
Linuxの何を理解しようと…


877 名前: デフォルトの名無しさん 投稿日: 02/04/09 21:42
>>876
カーネル


878 名前: デフォルトの名無しさん 投稿日: 02/04/09 22:47
>>877
サンダース


879 名前: デフォルトの名無しさん 投稿日: 02/04/09 22:55
寒の戻りか?


880 名前: デフォルトの名無しさん 投稿日: 02/04/09 22:57
今夜は冷え込むねぇ…


881 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:04
ところで、
ファイルポインタをブロック単位(構造体など)で
移動できる関数とかってある?


882 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:06
>>875
>>1を誰だと思ってるんだよ。


883 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:11
>>881
sizeof(構造体)*ブロック数 じゃ、だめなの?


884 名前: 881 投稿日: 02/04/09 23:25
例えば、int no,char nameの構造体があって、
キーボードひとつ入力するごとにfwrite関数でファイルに出力して
もし同じ番号なら上書きするって感じなんだけど。
fseekとsizeofでいけるかな?試してみます。


885 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:36
C言語は今現在、どのように利用されているのでしょう?
Cだけでソフトを開発するような場面はありますか?
また、Cと他の言語の連携ではどのような組み合わせが一般的なのでしょうか?



886 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:46
PerlからはCとJavaを使えるらしいが
Cからはわからん。


887 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:48
>>885
組み込みソフト開発。その他コンピュータの高水準言語のスタンダード。
DLLの様な仕組みがなければ連携は大変すぎてアフォらしい。

ガタガタ言わずにC覚えろ。知らないとプログラマとは名乗れないぞ・・・。


888 名前: デフォルトの名無しさん 投稿日: 02/04/09 23:53
JNIを使えば、CからJavaを起動できる。
Javaアプリの起動プログラムをCで書くことはある。


889 名前: 888 投稿日: 02/04/10 00:23
⊂(`Д´⊂ )⊃==888げっとー


890 名前: デフォルトの名無しさん 投稿日: 02/04/10 00:26
>>885
仕事でCでCGIを組んだよ。CGIライブラリから書いたな。
でもこれは特殊な例かもな。漏れが上司にわがまま言った
だけだから。


891 名前: デフォルトの名無しさん 投稿日: 02/04/10 00:27
>>889
バカハケーン
889なのにカコワル


892 名前: デフォルトの名無しさん 投稿日: 02/04/10 00:28
>>890
なんで特殊な例なの?

ちなみにCでCGIってどうだった?
掲示板が作れればどれも簡単でしょ?


893 名前: デフォルトの名無しさん 投稿日: 02/04/10 00:36
>>890
漏れも、5年くらい前にCでCGI書いたときは、ライブラリ書いたよ。
CGIのインターフェイスの解説書しか手元になかったから。
今なら、特殊っていうか、わざわざそんなんしなくても、って感じだね。

(本当はどういうふうに言うのが良いんだろう、CGIプログラム?)


894 名前: デフォルトの名無しさん 投稿日: 02/04/10 00:37
>掲示板が作れればどれも簡単でしょ?




895 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:04
>>894
892は掲示板が一番作るのに苦労すると思っているんだからそっとしといたげて


896 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:22
あ、あんたら解かってない。
掲示板にCGIの全ての技術が詰まってるんよ?
マジデマジデ

あとは肉付けだけ。


897 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:29
896が正解


898 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:30
896は掲示板厨房


899 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:31
そうは思わない。


900 名前: 900 投稿日: 02/04/10 01:33
900は俺。


901 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:33
>掲示板にCGIの全ての技術が詰まってるんよ?

ア,CGIのことね。
了解


902 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:37
>>896
最近の掲示板はRDBMSまで使うんか。おおがかりだねぇ。



903 名前: 902 投稿日: 02/04/10 01:41
>>901
いや、漏れも最初そう思ったけど、なら>>890>>893の言うように、
ライブラリ書いて終わりだよね。


904 名前: デフォルトの名無しさん 投稿日: 02/04/10 01:46
まぁCGIが理解出来てりゃ後は他のアプリと同じだしな。


905 名前: デフォルトの名無しさん 投稿日: 02/04/10 03:22
902がカコワルイではないか


906 名前: 902 投稿日: 02/04/10 03:28
シクシク


907 名前: 901 投稿日: 02/04/10 14:19
だって俺CGIのことなんも知らないもん


908 名前: デフォルトの名無しさん 投稿日: 02/04/10 15:06
CGI:C langage Gloval Integer
要するにC言語のint型のグローバル変数のことです。
代表的なものとしてerrnoなどがあります。

Common Gateway Interfaceの略語という説もある。




909 名前: デフォルトの名無しさん 投稿日: 02/04/10 18:58
先生!Cで他のプログラム(.exe)を呼び出すにはどうすればいいんですか!!


910 名前: デフォルトの名無しさん 投稿日: 02/04/10 18:59
system
CreateProcess
CoCreateInstance
ShellExec
ShellExecEx


911 名前: デフォルトの名無しさん 投稿日: 02/04/10 19:05
popen
open2


912 名前: デフォルトの名無しさん 投稿日: 02/04/10 22:13
_topenと_ftopen、どっち使おうかいつも悩む。
バイナリ読み書きしかしないときはやっぱ_topenのほうがいいの?
_ftopenはバファリンでパフォーマンスが向上するってのがちょと気になる。
それぞれの特徴を教えてちょ。


913 名前: デフォルトの名無しさん 投稿日: 02/04/10 22:22
頭痛に効きます。


914 名前: 912 投稿日: 02/04/10 22:41
う〜〜ん検索しても見つからないなぁ。
せめてソースが見れればいいんだけどなぁ。


915 名前: rain 投稿日: 02/04/10 23:24
先生っ!!馬鹿にされるかも知れませんがC言語ではDOSプログラムしか作れないって本当ですか?


916 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:27
大嘘です。


917 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:27
うそです。



918 名前: rain 投稿日: 02/04/10 23:28
じゃあちゃんとしたIEみたいなのも(?)作れるって事ですかっ!?


919 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:28
まともな開発で使われていたのはDOS時代までという意味ではホント


920 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:30
作れる人なら作れます。


大嘘です。


921 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:30
>>919
PCでしょぼい仕事しかしたことないやつ。


922 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:31
Cは神です。何でも作れます。


923 名前: rain 投稿日: 02/04/10 23:31
う〜ん・・・BCCでも作れるんですか・・?


924 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:33
>>923
作れる人なら作れます。


925 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:33
先生! IE って「ちゃんとした」アプリなんですか???


926 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:34
hello, worldの次くらいにちゃんとしてます


927 名前: 912 投稿日: 02/04/10 23:35
くだらないネタのせいで俺の質問が流れていく・・・


928 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:36
八つ当たりします


氏ね>>924


929 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:38
つーか今からC覚えてどうすんの?
趣味でやるにしてもちょっと凝ったことしようと思ったら
むちゃくちゃプログラム長くなるし、
仕事にしても先細りになることが保証されてるし。
もうちょっと時代の流れを読めよ。


930 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:39
これだからドキュソは・・・。
もう二度とこのスレに来なくていいから>929


931 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:40
>>929はCがわからなかったのでやつあたりしちゃってます。


932 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:42
>>929
じゃあ何がいいんですか?


933 名前: rain 投稿日: 02/04/10 23:43
>>929
それでもいいから来てるんですよ!!


934 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:45
ここは低学歴低賃金の落ちこぼれの集うスレですか?


935 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:48
教えてください
K&Rの演習ができれば取りあえず初心者から抜け出したということになりますか?
最近頑張っているんだけどこの先に不安があるもので・・・


936 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:48
>>934=929
奴辺りですか?(プ


937 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:50
>>935
2chで「あなたはもう初心者ではありません」って言われたら安心するの?不
安でもひたすらプログラム書いた方がいいんじゃないですか?それが楽しくな
いならやめればいいし。


938 名前: rain 投稿日: 02/04/10 23:53
Cを使った代表的なwinアプリってなんですかね?


939 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:55
ピュアCで書かれた代表的なウィンドウズアプリなんてあんのか?


940 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:55
>>938
windows95


941 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:55
wordpadもcだな。
たしか、VSにサンプルついてた


942 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:56
>>929は真っ先にHSPを覚えてしまい、Cに移行できなくなったドキュソです。


943 名前: rain 投稿日: 02/04/10 23:57
>>941
それ聞いて安心しました。どうもありがとうございます。


944 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:59
>>941
ワードパッドはリッチエディット使ってると思うが、アレの内部もCなのか?


945 名前: デフォルトの名無しさん 投稿日: 02/04/10 23:59
>>912
_ftopen と _topen なるものを知らないので何とも言えんが、
名前から察するに高水準/低水準の入出力か?
たぶん _ftopen は中で _topen を呼んでるだろうから、
本気で書くなら _topen の方が多少は速くなるかもしれない。
が、数バイトずつ読んでくみたいな使い方をするなら、どうせ
自前でバッファリングしないことにゃ使い物になんないから、
結局 _ftopen と同じことをやることになるんで、最初からあるものを
使った方がいいのでは。


946 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:00
#include <windows.h>
LRESULT CALLBACK WindowFunc(HWND, UINT, WPARAM, LPARAM);
char szWinName[] = "MyWin";
int WINAPI WinMain(HINSTANCE hThisInst, HINSTANCE hPrevInst, LPSTR lpszArgs, int nWinMode)
{
    HWND hwnd;
    MSG msg;
    WNDCLASSEX wcl;
    wcl.cbSize = sizeof(WNDCLASSEX);
    wcl.hInstance = hThisInst;
    wcl.lpszClassName = szWinName;
    wcl.lpfnWndProc = WindowFunc;
    wcl.style = 0;
    wcl.hIcon = LoadIcon(NULL, IDI_APPLICATION);
    wcl.hIconSm = NULL;
    wcl.hCursor = LoadCursor(NULL, IDC_ARROW);
    wcl.lpszMenuName = NULL;
    wcl.cbClsExtra = 0;
    wcl.cbWndExtra = 0;
    wcl.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
    
    if(!RegisterClassEx(&wcl)) return 0;
    hwnd = CreateWindow(
            szWinName,
            "Windows 2000 Skelton",
            WS_OVERLAPPEDWINDOW,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            CW_USEDEFAULT,
            NULL,
            NULL,
            hThisInst,
            NULL
            );
    
    ShowWindow(hwnd, nWinMode);
    UpdateWindow(hwnd);
    while(GetMessage(&msg, NULL, 0, 0)){
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
    return msg.wParam;
}
LRESULT CALLBACK WindowFunc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
    switch(message){
        case WM_DESTROY:
            PostQuitMessage(0);
            break;
        default:
            return DefWindowProc(hwnd, message, wParam, lParam);
    }
    return 0;
}
これをコンパイル( bcc32 -tW hoge.c ) して実行してみれ。 >> 923


947 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:06
#include <windows.h>
int APIENTRY WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
WinExec( "explorer", SW_SHOW );
return 0;
}

むしろこれだけでエクスプローラの出来上がりだ、IEも近いぞ。


948 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:06
>>946
なんかWinアプリ作ったこと無いようなソースだな


949 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:06
>>939
秀丸は?って最近は知らんけど。


950 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:07
>>948
どう見てもWinAppのスケルトンですが?
MFCしか使ったこと無い様な発言だな。


951 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:10
>>950
1 RegisterClassでエラー判定しているのに、CreateWindowで判定してない。
2 ウインドウの背景色をGetStockObjectで拾ってきている
3 文字列をASCII前提で書いている
4 文字列定数(クラス名)の定義がconstポインタではない


952 名前: 912 投稿日: 02/04/11 00:12
>>945
サンクス!
_topen=>_open,_tfopen->fopenだと思ってくだされ。
やっぱりちまちま読むときはバッファリングが必要ですか。
じゃぁfopenに統一しよう。今後悩まないように。


953 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:13
>>952
そう言う棲み分けじゃないと思うが・・・。
移植性の問題だと・・・。


954 名前: 912 投稿日: 02/04/11 00:14
移植性?
fopenと_openで移植性が違うんすか?


955 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:15
あーあこりゃ致命的だな(w


956 名前: 912 投稿日: 02/04/11 00:18
>>955
それ漏れ?
マジで、そんな話聞いたこと無いよ。
どっちもANSI互換でしょ?


957 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:24
>>956君じゃないその前の人


958 名前: 946 投稿日: 02/04/11 00:31
>>951
まあ、苦情は Herbert Schildt 先生に言ってくれ。


959 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:34
>>957
ほっとしたよ(;´−`)


960 名前: デフォルトの名無しさん 投稿日: 02/04/11 00:38
>939
WWWCがC+SDKだったような。


961 名前: 日下部圭子 投稿日: 02/04/11 00:50
http://pc.2ch.net/test/read.cgi/tech/1018453690/l50

新スレ作りました。
スレを使い切るとすぐ倉庫行きになって、見れなくなるので、
使い切る前に早めに移行をおねがいします。


962 名前: end 投稿日: 02/05/10 21:34




963 名前: end 投稿日: 02/05/12 20:59
ゆっくりと・・・


ゆっくりと・・・


だが確実に・・・


沈んでゆく・・・



もう誰にも・・・


止める事は・・・


できない?




964 名前: デフォルトの名無しさん 投稿日: 02/05/12 21:07
test


965 名前: end 投稿日: 02/05/12 21:46
>>964
止めてないw



966 名前: デフォルトの名無しさん 投稿日: 02/05/17 01:44
浮かべーーーーーーーー!!


967 名前: デフォルトの名無しさん 投稿日: 02/05/17 01:45
浮かんだーーーーーーーーー!!


968 名前: デフォルトの名無しさん 投稿日: 02/05/17 01:46
いぇーーーーーーーーーい!!


969 名前: デフォルトの名無しさん 投稿日: 02/05/17 01:46
さげよーーーーーーー!!


970 名前: デフォルトの名無しさん 投稿日: 02/05/17 01:48
もうどうでもいいからさっさと1kまで埋めてくれ


971 名前: デフォルトの名無しさん 投稿日: 02/05/17 14:42



972 名前: デフォルトの名無しさん 投稿日: 02/05/18 19:03




973 名前: デフォルトの名無しさん 投稿日: 02/05/18 19:36



974 名前: デフォルトの名無しさん 投稿日: 02/05/18 19:39



975 名前: デフォルトの名無しさん 投稿日: 02/05/18 19:59
どうせだから何かネタを残すべし。


976 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:01
      |\-/|
    / ̄ ̄ ̄\
    / __・△・__ 丶
   ノ イノノハ) ))ハ |   / ̄ ̄ ̄ ̄ ̄ ̄
   | 川 ● ● 川| <  電気を…
   ∪'丶 ー ノ ''∪   \______
     | ̄ ̄ ̄|
     / ̄ ̄厂ハ
     / )  ○ ( \
   ○ノ     丶○
    (⌒⌒⌒⌒⌒)
     ⌒|⌒|⌒|⌒
        |vv|vv|
     /__|__\



977 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:02
      ノ ' '⌒ \r⌒'、
  ∩  ( ハ( )) \ 、 )    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( )  )(・ (・ _) w'  <  大切にねっ!
  | |  (  ▽  ノノ      \_________



978 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:07
             _
           〃  V/⌒、
         nl/λ   |||  ||
       /⌒つ = 人_ノ、
      /  <Z) ニニ、ヽ___ ヽ
      /  ,  ,) ( ・ノ /⌒l/と二`ヽ,
     /    ̄).,へ、 っ´⌒〈)Y二  〉
   /(ノ  ノ~( /^^'ー=ニイ ) |/_ュ  〉
   / .\/_) ヽヾ___/ノ ヒ'  /
   |    /   `ー――‐'´  ) (、
  .|    /    γ・v・ 、   ,/ |/ ヽ
  |    | /|  (  ,l、 ,)_ λ'(_ノ  \
  |    |/ | (´____,~ )| ヽ\   \
AAは小さめに


979 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:10
  ⌒ ⌒ヽ. 
 ′.从 从 ゝ  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ノ从 ゚ -゚从_ < 1000はもらったわね。
  ./ |又|ヘ_   \_________
  .L |_| _/つ ))
  .U ||||| |
  .L_LL|_|
   (__)__)



980 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:11
ラスト20


981 名前: デフォルトの名無しさん 投稿日: 02/05/18 20:59
  ∧ ∧
  (,,・∀・) 
〜(_uu




982 名前: デフォルトの名無しさん 投稿日: 02/05/18 21:02

  / l l | | | | | l ヽ  / ̄ ̄ ̄
  | | ノ   ヘ | |< きたな
  ヽヽ ̄ _  ̄ノ/  \
    / _ ヽ        ̄ ̄ ̄
    | |_| |
    | | | |
   /ゝ__χ__ノヽ
  /   ||ヽ
 /____山_|__ヽ
    | | | |
   ゝ__χ__ノ





983 名前: デフォルトの名無しさん 投稿日: 02/05/18 21:05

     ,  ´ ̄`´ ̄ ̄ ― 、
    /              ヽ
  /      / / || ヽ        ヽ
  !    /  /// | |ヽ\\      !
 |   / // // | ||ヽ\\      i
 l .,-、| 二二    二二_\ ,-、  |   / ̄ ̄ ̄ ̄ ̄
 ! | 6| ´ ( 、)ヽ  ´ ( 、)` |6 |  | < 月島雫です。
  |ヽ_|  "   ,,    ""   |_ノ  |   \_____
  !  \   、__,     ノ  ,,!!
   ゙! !.i i`,、 _   ___ /i.i l !!"
      _ |   ̄  | _
     ̄ \´     `/  ̄



984 名前: デフォルトの名無しさん 投稿日: 02/05/18 21:06
      ______
    /          )))
   /   /// /―――-ミ
   / 彡彡 // /      ヽ))
   / 彡彡 iiiiiiiiiiiiiii  iiiiiiiiii|     
   / 彡彡 < ・ > 、<・ >l
  /    |       ヽ   〉   
  /  ( | |      __)  |    / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  /   | ≡  /, ―――  |ゝ < 1000は士郎にはやらん
  /   |   |  L ___」 l ヾ  \_________
_ミ  l   ______ノ ゞ_
  |  l ヾ    ー   / |  l
  |  |   \ー    ‐/  |  |



985 名前: デフォルトの名無しさん 投稿日: 02/05/18 21:09
      ____,,,,,,,,,,,,,,,,、、、
    /            )))
   /    ______,,,ノ
   /    l /    \\ヽ|)
   |    | ''''''''''    ''''''''|     
   |    | (  ・ )   ( ・ )l
   |     l        l  |  
   |  ( ~         _)  |
    |   |      ,―――. l   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    l .|ヽ    ー――' /  < あの男にだけは1000はやれない。
    ヾ |  \____ノ    \_________
  __/ヽ\      | l\_  
 ̄     λ ヽ     / .|    ̄



986 名前: デフォルトの名無しさん 投稿日: 02/05/18 21:10
      ,; ⌒  ⌒  ⌒ ヽ 
     (     _____ )
    (   /        ヽ
   (   l   ⌒     ⌒ヽ
   (   ヽ , ―― 、  , ―‐‐、  
    (   〉=| ( ・ ) |⌒| ( ・ ) |
    (  |  ー―‐'  ヽ ―‐'
     ヾ(6 ヽ    (  :::::) 、)   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       l     _____) < くぉら 山岡!
        l   ( ___ヾ'    \_________
       | ヽ _____ノ
   __/ヽ\      | l\_
  ̄   \ λヽ     / .|     ̄




987 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:19
     _______
    /          \
    |    υ       |  
    /  ___   __  |           
   ( | 6--|<・>| =|<・>l -|
    |      ̄  〉  ̄ ̄ |
    |   υ ___   |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    |  //‖ ‖    |  <やっぱ山岡はすごいや 
    |   | L ___」  l    \________
    \  ______ノ
     /ヽ       /\  




988 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:21
   ,,.-ヘ-へ-ヘ-'^ー^-ヘ-、ハ-へ-、,,,
 S^;;;:::;;;::;;::;;:;;;:;i'''ヽ;;;/''''i;;::;;:;:;::;;:::;:;;;:;乙
 ろ;;;;;;;;;;;;;;;;;;;;;;;l,,_ _,,l;;;;;;;;;;;;;;;;;;;;乙 / ̄ ̄ ̄ ̄ ̄ ̄
   `b^b^b^b<二>H<二>b^b^b^b′ | 1000ほしいの?
.         ヽ._,ニ、_ /       < えらいねェ〜
        ,r┼---‐|―i_,,,,      \______
   __,,r〜llll/ヘ|___ノ∧| ||| ̄^>、
  〃 ヽモl,|||  |    |__||| /';  l
   〉‐' └、lll_|__,..-‐''";;;;\_,〉 ヽ〈
  l ;  ,.-''"   ~`ヽ;;;;.:=‐''"‐-、  .l



989 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:22
  ┃┃┃┃
  ┃ ┃   /ヨ⌒彡
 ┃  ┃ r/ヲ 冫、 )
      /\ヽ_`__0′ ━   ┃
     ノ;;;:::::::::/       ┃   ∧∧∧∧∧∧∧∧∧∧
    /;;;;;;::|::::/|    ━━┛  < おれは          >
.   〈;;;::::::|:::〈 l    ィ'^'^'"'''z  < コテハンをやめるぞ! >
    ヽ|:::|::::::ヽ.  乂(^ミ、了   < ジョジョー―――ッ! >
    |、|::::::::: ̄`m|ヰ戸 6)    V V V V V V V V V V V
   | 、lヽ:::::::::::lヨ |Eヲ/|ヨ



990 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:24

   ミ髪巛巛川髪髪髪彡
   ミ髪髪髪巛川髪髪髪彡
   髪   /////   髪髪ミ
   髪   ///    髪髪
   | _ヽ /∠__  髪
   |《 ΘΨ 《 Θノ   髪
   |ミミ | | )   = ≡|∂)
   |ミ  Ц/     ≡|ソ   / ̄ ̄ ̄ ̄ ̄
   |ミ       ┓  ≡|  <  グッド>>989!!
   |ミ†三三彡┃ ≡/|    \_____
   |  ¬       / |┐
   |   」     / ノ├ー─ヽ
 /√ヽ──−´ / ノ \
 \> ▼ < ̄/ ┌─┐
    ▲   ┌─-|_ []|
    ■   │  人   |
    ■   │┌──┐|
        └ |__ |
         (     |
         ├── |
          |__ノ




991 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:27
) おのれ
) 1000取り合戦とは面白そうな
) 斬鉄剣の錆にしてくれる!!
)
⌒⌒⌒⌒⌒|/⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒⌒
         , ‐‐‐  、
       /      \
     /         \__,,::::‐―‐::;,__
    _ノ                    ト、
  /                       \
  l     、―‐>‐‐、             \
  \   ir=`''‐,イ>  \トヽ           \
   \_ \fi>i ー   | レ'           \
       | !. ノ  _  ノイヽ.       ┌‐:、ヽ
      ! !、ヽ .//>  | ヽ_____>‐´\|
      ヽ \ ヽ<  /  \_` ‐:.、   \. \
   / ̄ ̄`ヽ、\___/_‐:___ \_`:.‐:..、  \. \
  ./      ̄ ̄ ̄    .\ `‐:..  \ \  \. \_
  |     / ̄,,>―――::、__`‐ト__\ \  >、 >‐`>、
  ヽ    /  「           ``ー――――´ X´_//>、
   \  `   |                      _,L///
    |     \____.,::::::::―――――――‐、  ^L|ヽ, \
    ヽ、    !、      !、   ヽ    \|   |  \__/\/\
     |\    \      !     !、    `i.  !、   \  \ \





992 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:28
                         ∧_∧ /
                        ( ´∀`/)
                        (  /  )
                        |/ | |
                        /(__)_)



993 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:30
         ‐.、‐'´`
      ,i´         ヽ
.     /             \
.   |              \
.    |                 .|
    |  / /  /  / / |  ヽ..|
.  ./  / / .. / / / / |   |.
  | / /  / / /    |    |
   V | ````' ‐   -‐'''''''| |⌒|
    || ,.___   ___,.  | |  )
    ヽ|    |  .    || ノ|
     |   |  `‐-.  |  |
     |   ヽ          |
     ..|   _____  '    |
     /|     __    /   |
     |/|ヽ        /   |/
      / |\ .    /|   /
      | .|  ヽ.  / |
       |   ''"  / ̄ ̄
         Λ   /   
┌────  ────
│またつまらぬ
│ モナーを斬ってしまった
└──────────





994 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:32
             ,. へ、___
            r'        \
            |         ,>
            /‐、__    i´
    ___,――´エ_、    ̄`ー l
    ー―、__、   ー‐、____iニヽ、
     /     ̄`ー、_        ,`>
    i'´        r‐ゝヽ、ー―フ<´´       / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  , ―‐´ ̄` ‐、    | iニ!、ヽ‐―´   ,>       | おい、五右衛門
/  / 、   ヽ.   ヽ,、_ヽ.ヽ     (,、    . < 1000は俺のもんだ
  /   \   ト‐;/イ    \\   / ,i、__/レ,i.  \_______________
 ∧     \ |   ヽ. , へ.ヽ ヽ、__、 /   ーノ 
  ヽ.     、ヽ| i  `v、   ̄ヽ、      <ノ          r__、_      ,‐ァ
   ヽ.    Y b/ /ヽ/      ヽト、_、k―´       ,、 ,_,.―'/ニニニl‐¬' ̄ ̄ ̄ ̄ ̄)
    i     i l./  iく                    >;´,,‐――‐、ニハ rf―‐―――´
         | i´`i―〈 ト、          ,‐、_  ,,,‐'''´´  ニニi、‐ ) r‐´
         |/ / ./| ヽ. ̄`ー、__,;;:――´´ `ヽ `<´ ``` `   ニニ`Y´
             _」,, ヽ‐'''''´      ,,ノ|   `i |   `` ``,、_ `ヽ
                      __,,,/  ト‐‐'´L/ヽー―r'''' ̄  `;L/
                    ‐'''´  _,,, ‐―'´     .L___,,,ノ





995 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:34

             _______
            /           \
          /              \
         /                 \
         /                   \
         l         / ̄ヽ        |
         l  /\   /     ヽ       |
         | /   \/        ヽ     |
         |/ ━━    ━━━━━   _  |
         |   / ̄\    ( ̄/\  ヽ / \|
         il  |  / il    ヽ l  )  V    ヽ
         (ヽ  ヽ_ヽ/ /      ̄ミ ミ   | |/ヽ |
          |     /           ||ヽ//
          |    ヽ           ||ヽ/  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          |    ______,  ///  .| んーなこと言うなよ
           |   ´、|  |  | /  ミ |   < 次元
           i    \.  |  レ     ミ    | マターリいこうぜ
            l     ヽ┴/     /|     \________
            \    ━     /  |_
              ヽ       _/  ,/|
               ヽ__ /__/  |、
              ///    \.     |
             / / |    / \.   /
             ̄ ̄ /⌒ヽ/   丶/
               /  ヽ





996 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:36
              _ー‐' ̄' ̄ ̄ ̄ヽ_
            /                \
          /                   \
         /                     \
        /                        ヽ
       /                          ヽ
      /                            |
      /               |              ヽ
     /         \  ヽ  ヽ  ヽ  \       ヽ
     |       ヽ   \  \  \  ヽ  ヽ       ヽ
     |ヽ    (  ヽ\__彡_メ==\_)        |
     \  ゝ \__/__      ヽ ̄|⌒)″)        ヽ
      \   ヽイ /人くヽヽ     \>イ  ノ         \
        \_ \ "\u゙')         /          \
          |   \    j        /            )  ./ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          ノ    ヽ    ヽ)      /              |  |  おじさま!
         /     ヽ     iー.、   |              / < 
         |      ヽ、   `´    |           ) /   |  1000は渡しません!
         (        ` .、    /ヽ(       / / /    \________
         \\(\__ヽ\__>‐ イ    |\___// ̄
                   /       |





997 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:39
      /::::::::::>、_
      ,:::::::::::/   i::ヽ、
     ./:::::::::/    .i::::::i ,.:‐:.、 li lヽ
     l::::::::::i .i.    l::::/:::::::ー:::‐:::::::l
     |:::::::::|. |     |::::::::::::;::::::‐::::::::'、
 /  /::::::::::| i'     i'::;/::::::::::::::::::::::ヽ
 i`::‐::::::::::::::!i'     i'V:::::::::::::::::::::::::::::::::::i
 \::::::::::::::::::i     |::::::::::::::::::::::::::::::::::::::::i
   /:::::::::::::|     !:::::::::::::::::::::::::::::::::::::::::::、
  /:::::::::::::::::::i     |:::::::::::::::::::::::::::::::::::::::::::::ヽ
 i:::::::::::::::::::::|     |:::::r‐_ノ‐´―::::::´::::ノ::::::::ヽ
 !;;::::::::::::::::::|     ト::/ ゞi;;ニ> ー‐‐イ:::;:::::::;)
  i::::::::::::::::|     .L,!::!  `" ^´ ,i;;iヲ;''ノ:::::::;;ノ
 , ):::::::::::::;l     !:;:: `     i`´/::::;;;;/  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ヽ‐;:::::::::::|     l/ :.   .'、_ '´, ' イ、   | バカね
  ー‐´!::;!     li、 `、 `‐´ イ::::::::::ヽ.. < 1000は私のものよ
      |   i  .l;;;i  `ト:::::::::::::::::::::::::::/.   | カネニイトメハツケナイワ
      |   i'   l;;;;ヽ_ i::::::::::::::::ノ '‐― 、  \________
     .|.   i   .i;;;;li;ヽヽ!、_,,,      .!
      !      l;;;;;;;;;;;;;;,,         ,ト‐.、
      i     l;;;;;;;;;;;;;;;;;;;,,     `ー:.、l ト、
       !、    l;;;;;;;;;;;;;ヽヽ;;;;,,  .、    /;;/,
       ヽ   l;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,  ` 、 /;;/;;;i
        \  !;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,_  .v;;;;;;;;;;;/





998 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:42
               __
        ( ̄ ̄ヽニニ_, )
        冫        |
        / ̄^-―――′ヽ
      / |            ̄\
    /  ヽ______/  /
   く               /
    ー―、___________イl 
      /ヽ| く て .| |.ノ-|(  
      |ヽ | / ´ヽ-^ L^  く |
  ,――/|( )| |    、__ )  / |\――__
/  /  ヽ | |  ____________  | |  \_ | \   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  /     |.| |∠--i-i--i-ヽ| ゝ   \ く  <  1000取りとは許さん逮捕だ
  |      儿 (  ̄ ̄ニ ̄  く    / /   \____________
ヽ \    ヽ\/        )  /  ヽ
、フ  \    \`ヽ_______へ―′  / |   |
   _____フ    |   /  \  |    ̄|   |
   ヽ       |  |    |  |    /   |



999 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:43
             _______
            /           \
          /              \
         /                 \
         /                   \
         l         / ̄ヽ        |
         l  /\   /     ヽ       |
         | /   \/        ヽ     |
         |/ ━━    ━━━━━   _  |
         |   / ̄\    ( ̄/\  ヽ / \|
         il  |  / il    ヽ l  )  V    ヽ
         (ヽ  ヽ_ヽ/ /      ̄ミ ミ   | |/ヽ |
          |     /           ||ヽ//
          |    ヽ           ||ヽ/  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
          |    ______,  ///  .| んーなこと言うなよ
           |   ´、|  |  | /  ミ |   < とっつぁん
           i    \.  |  レ     ミ    | 1000モラッタ
            l     ヽ┴/     /|     \________
            \    ━     /  |_
              ヽ       _/  ,/|
               ヽ__ /__/  |、
              ///    \.     |
             / / |    / \.   /
             ̄ ̄ /⌒ヽ/   丶/
               /  ヽ





1000 名前: デフォルトの名無しさん 投稿日: 02/05/18 22:43
      ___
    /      \
   /      L  |
   |   ===========‐
   |  | \  / |
   |◯ |  ・   ・ |
   ヽ  ノ   ⌒  |
   /  ̄        ヽ   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  /|  )_____ |\< いただき!!
/ λ         ノ  \\________



1001 名前: 1001 投稿日: Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。



2ちゃんねるは、ここのサーバを使ってるです。。。