tsuduki999のプロフィール
- ベストアンサー数
- 6
- ベストアンサー率
- 35%
- お礼率
- 0%
- 登録日2009/04/10
- C言語で可変長から固定長に変換方法は??
C言語で可変長から固定長に変換方法は?? ある可変長のファイルがあって、レコード長を全て40にそろいたいと思って以下のようにプログラム作りました: ・・・・・(省略) len = strlen(buf); // fscanf使ってファイルから読みみ込んだものbufに格納 n = 40-len; char * str = (char *)malloc(n+1); memset(str, ' ', n); strcat(buf,str); //レコード40バイトになるまで空白を詰めていく fprintf(fpt,buf);//fprintf使って新しいファイルに書き込み ・・・・・・(省略) 実行してみたところ、全部40という長さになっていない、40超えるものも多数出ました。 これは何がだめですか?fprintfをつかったからだめですか?それともmalloc freeにする必要ありますか?まったく検討つかないです。どうかよろしくお願いします
- C言語で可変長から固定長に変換方法は??
C言語で可変長から固定長に変換方法は?? ある可変長のファイルがあって、レコード長を全て40にそろいたいと思って以下のようにプログラム作りました: ・・・・・(省略) len = strlen(buf); // fscanf使ってファイルから読みみ込んだものbufに格納 n = 40-len; char * str = (char *)malloc(n+1); memset(str, ' ', n); strcat(buf,str); //レコード40バイトになるまで空白を詰めていく fprintf(fpt,buf);//fprintf使って新しいファイルに書き込み ・・・・・・(省略) 実行してみたところ、全部40という長さになっていない、40超えるものも多数出ました。 これは何がだめですか?fprintfをつかったからだめですか?それともmalloc freeにする必要ありますか?まったく検討つかないです。どうかよろしくお願いします
- 複数クラスで共通の関数、変数の呼び出し方
お世話になります。 質問させて頂きたいことは 複数のクラスで共通して使われる関数、変数があった場合、その関数、変数は私の中で次の2通りの方法が思い当たったのですがどちらのほうがメモリ等の使用からよいのでしょうか? 1つめは あるヘッダファイル****.hを作成し、その中で関数を宣言し、変数はそのヘッダファイルのソースファイル中のグローバル変数とする。 2つめは クラスを作成し、静的メンバ関数、静的メンバ変数とする。 ネット等で拝見すると、あまりグローバル変数というのはよく見られていないようなので2つめの方がいいのかなと思っているのですが、静的メンバを今まで使ったことがないので、このような用途に使われるべきなのかも正直わかっていません。 検討外れのことを言っているのかもしれませんが、教えて頂ければと思っております。宜しくお願い致します。
- シェルスクリプトの変数の制限?
こんにちは。 シェルスクリプトで謎の現象が起こりまして悩んでいます。 現在、 #!/usr/bin/sh var='foo' if [ $? - eq - 0 ]; then mv xxx.bz2 xxx.old.bz2 echo $var | bzip2 -z >xxx.bz2 fi といった感じのシェルスクリプトを動かしています。 これを手作業で、 foo | bzip2 -z >xxx.tmp.bz2 とやると、xxx.tmp.bz2は1.2MB程度のファイルとなるのですが、 上記のシェルスクリプトで実行すると8KBほどにしかなりません。 シェルスクリプトの変数のサイズの制限かと思い、調べてみましたが、 特に制限があるとの資料はみつかりませんでした。 fooの出力がバイナリなので、そのせいかとも思ったのですが、unix系列の場合、windowsと違ってテキスト/バイナリの区別はないはずだしということで、理由がわかりません。 シェルの変数には、やはり制限があるのでしょうか?それとも他の理由でしょうか。ご存知の方がいらっしゃいましたら、ご教示お願いします。 環境はsolarisです。バージョンは、 $ cat /etc/release Solaris 10 8/07 s10s_u4wos_12b SPARC Copyright 2007 Sun Microsystems, Inc. All Rights Reserved. Use is subject to license terms. Assembled 16 August 2007 です。よろしくお願いします。
- ベストアンサー
- その他(プログラミング・開発)
- titokani
- 回答数4
- 64ビットと32ビットの違い
C言語を使っているのですが、32ビット版のgccでコンパイルして実行できるファイルが、64ビット版のgccだと違う結果が出てきます。どちらのgccでも使える汎用性のあるファイルは書けないのでしょうか? 因みにstdio.h、math.h、stdlib.hのライブラリを使っていて、倍精度(double)と整数(int)を使っています。配列は宣言時に「*a」とでも宣言して、mallocで作っています。 漠然とした質問ですがよろしくお願いします。