トップページ⇒tech
1001コメント269KB

C言語なら、俺に聞け! lt;50gt;

レス数が1000を超えています。これ以上書き込みはできません。
0001鼻から悪魔でますたNGNG
まず問題を冷静に吟味してCの話か否かをはっきりさせてから質問しろ。
むしろ質問する前にWEBで検索するのが常識だ。

GUIなどの標準Cではできない事の質問は使用している開発環境のスレへ行け。
ソース丸投げ、宿題、書籍 は専門の別スレがあるのでそこへ行け。

コンパイラを探しているなら >>2 を見よ。

上記を逸した場合の結果は激しく未定義とする。

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/
0951デフォルトの名無しさんNGNG
よく分からないんだけど tmpnam() は使わずに自作しろってこと?
0952デフォルトの名無しさんNGNG
てか問答無用で(removeして)renameするなら、
> fpTmp = fopen(pTemp, "w");
この時点で目的のファイル名にしておけば
0953デフォルトの名無しさんNGNG
ところで、UNIX上でrenameして
指定されたnewnameのファイル/ディレクトリが既に存在していた場合どうなるの?
既存の方は消される?
あるファイル名を既存のディレクトリ名にrenameしたら、そのディレクトリは消える?
Windowsだと同名のファイルとフォルダは共存出来ないけど…
0954デフォルトの名無しさんNGNG
unixでもディレクトリはアンリンクされませんよ。
ファイルはアンリンクされるけど、
他のプロセスがそのファイルをオープンしている限りディスク上からは消えない。
0955デフォルトの名無しさんNGNG
>>953
> 指定されたnewnameのファイル/ディレクトリが既に存在していた場合どうなるの?
> 既存の方は消される?
removeはターゲットがファイルの場合はunlink, ディレクトリの場合はrmdir
相当の処理を行う。よって

> あるファイル名を既存のディレクトリ名にrenameしたら、そのディレクトリは消える?
既存のディレクトリ配下にファイルやディレクトリが存在しない場合は消える。
存在する場合、rmdirも失敗するので、removeも失敗する。

> Windowsだと同名のファイルとフォルダは共存出来ないけど…
Unixでも同じ。
0956デフォルトの名無しさんNGNG
>>951
mkstemp()とか。
0957デフォルトの名無しさんNGNG
>>955
ディレクトリもひとつのファイルだしな。
0958デフォルトの名無しさんNGNG
>>954-955
なるほど、要するに既存の場合はremoveを試みてくれるわけね。
どうもありがとう。
0959951NGNG
ああ、これですか
ttp://www.linux.or.jp/JM/html/LDP_man-pages/man3/tmpnam.3.html
>この名前を持つファイルは、ある時点では存在していなかった。
この部分の解説きぼん。。
0960デフォルトの名無しさんNGNG
tmpnam()を実行した時点ではそのファイル名が存在していなくても、
ファイルを作成しようとした時にそのファイル名が存在しない事は保証されない、
という事かな
0961デフォルトの名無しさんNGNG
>>959
tmpnamを呼んだ時点では存在しなくても、その後実際にファイルを作成しようと試みるまでに他のプロセスによって作成されてしまうかもしれない。

ということでしょ?
0962951NGNG
>>960-961
あーやっぱりそれかあ。どうもです。
mktemp()のほうには書いてあった。
>その名前がすでに存在しているかどうかテストして、そのファイルをオープンする間に競合がある事から
0963デフォルトの名無しさんNGNG
tmpnamって変な略し方
0964デフォルトの名無しさんNGNG
tmpnam() は TMP_MAX回を超えて呼び出すとNULLを返すように
なり、はっきり言って全然実用的じゃない。俺は使わない。
0965デフォルトの名無しさんNGNG
C言語でエディタを作るとき、
while(fgets(buffer,BUFFERSIZE,fp)!=NULL){
}
のBUFFERSIZEを#define BUFFERSIZE 4096
としてるんですが、4096を超えるファイルに対応するには
どうしたらよいですか?
0966デフォルトの名無しさんNGNG
複数回に分けて読み込んでバッファ的に分かれているけど同一行フラグを立てるとか。
0967デフォルトの名無しさんNGNG
#define BUFFERSIZE 4294967296 にしろ。
0968デフォルトの名無しさんNGNG
どうでもいいがエディタを作ろうという奴が>>965のような質問を
すること自体が驚きだ。
内部構造はgapped bufferかlinked listなんでしょ?
同じように動的に行を読めばいいだけの話。

0969デフォルトの名無しさんNGNG
そういやエディタ作ってるやついたな
作りかけのやつうpして質問してた
0970デフォルトの名無しさんNGNG
>>968
gapped buffer、linked list
ってなんですか?
0971デフォルトの名無しさんNGNG
おいおい、そんなことも知らずにエディタ書こうとしているのか?
今時はソフトウェア作法も読まないのかねぇ。
0972デフォルトの名無しさんNGNG
while( !feof(fp) ){

fread(buffer,sizeof(char),BUFFERSIZE,fp);

fwrite(buffer,sizeof(char),BUFFERSIZE,stdout);
}
こうやってあるバイナリファイルを画面出力するとBEEP音が2回くらい鳴るのですが
どうして?
0973デフォルトの名無しさんNGNG
>>972
そのファイル中にベルコード(0x7)が含まれているからだろ。
0974デフォルトの名無しさんNGNG
>>972
\a
0975デフォルトの名無しさんNGNG
>>972
メーカーにクレーム
0976739NGNG
>>739でも質問しましたが、再度質問です。
・あと、ある文字列に対し、ビット誤り率が与えられて(例えば0.008)文字列を
ビット誤り(ランダム、バーストどっちでも良い)させてくれる効率の良い
方法はありますか?

どなたか良いコーディング方法がわかる方アドバイスください。

ある関数に引数で、バッファのポインタとバッファ長を渡し、
ビットエラーレート0.008がわかっていて、
ランダムで誤りを生成したいです。
よろしくお願いしますm(__)m
0977デフォルトの名無しさんNGNG
ある数字を有効数字3けたにかえるにはどうしたらいいでしょう
0978デフォルトの名無しさんNGNG
次スレ立ててもいい?
0979デフォルトの名無しさんNGNG
>>978
よろ。
0980デフォルトの名無しさんNGNG
どうせFAQしかないから過去ログ検索だけで十分だろ。
0981デフォルトの名無しさんNGNG
>>980
それを言ったら2ch全て(ry
0982デフォルトの名無しさんNGNG
次スレたてました。移動よろ。

C言語なら、俺に聞け! Part 51
http://pc2.2ch.net/test/read.cgi/tech/1046104909/l50
0983デフォルトの名無しさんNGNG
ぬるぽ
0984デフォルトの名無しさんNGNG
>>977
文字列に直して先頭3文字以降を0にして戻すとか。整数の場合ね。
0985デフォルトの名無しさんNGNG
>1000
おつかれ
0986デフォルトの名無しさんNGNG
ミノガサナイゼ
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >.__Λ∩
  _/し' //. V`Д´)/
 (_フ彡        /  ←>>983
0987デフォルトの名無しさんNGNG
>>976
質問の意味が理解できない・・
0988デフォルトの名無しさんNGNG
ぬるっぽ
0989デフォルトの名無しさんNGNG
>>988  Λ∩
. V`Д´)/←>>988
0990デフォルトの名無しさんNGNG
stricmpみたいに大文字小文字区別せず処理する標準関数は
他にありますか?
0991デフォルトの名無しさんNGNG
>>982
モツカレー
0992デフォルトの名無しさんNGNG
  y               y
   i、   __ _, --- 、_ _  r'
   `ヽ (ノ´ 二ニ二 て) /
     i、,〉'<入_li il_入>tイ、ノ
0993デフォルトの名無しさんNGNG
>>990
strnicmp
0994デフォルトの名無しさんNGNG
strcasecmp
strncasecmp
だろ
0995デフォルトの名無しさんNGNG
>>992
何これ?
0996デフォルトの名無しさんNGNG
>>995
(=゚ω゚)ノ 蝉の頭部です
0997デフォルトの名無しさんNGNG
((((;゚Д゚))))ガクガクブルブル
0998デフォルトの名無しさんNGNG
998!!!
0999デフォルトの名無しさんNGNG
999!!!!!!!!
!!!!!!!!!!
1000デフォルトの名無しさんNGNG
  | M ヽ
  |从 リ)〉
  |゚ ヮ゚ノ| 1000 キタ…
  ⊂)} i !
  |_/ヽ|」
  |
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。