[解決済み] C言語プログラミング:ファイルの内容を全てバッファに読み込む方法 [重複]について
2023-01-09 20:23:59
質問
あるファイルの全内容をバッファに書き込みたい。ファイルは実際には文字列しか含んでおらず、文字列と比較する必要があります。
linuxでも移植可能な最も効率的なオプションは何でしょうか。
ENV: Windows
どのように解決するのですか?
Linux は POSIX 準拠のシステムで、一般に C 言語用の適切で質の高いツールチェインがあるのに対し、Windows では C 標準ライブラリの多くの関数さえ提供されていないため、Linux と Windows 間の移植性は大きな頭痛の種です。
しかし、標準にこだわりたいのであれば、このようなものを書くことができます。
#include <stdio.h>
#include <stdlib.h>
FILE *f = fopen("textfile.txt", "rb");
fseek(f, 0, SEEK_END);
long fsize = ftell(f);
fseek(f, 0, SEEK_SET); /* same as rewind(f); */
char *string = malloc(fsize + 1);
fread(string, fsize, 1, f);
fclose(f);
string[fsize] = 0;
ここで
string
には、テキストファイルの内容が 0 終端の C 文字列として適切に格納されます。このコードは標準的な C 言語であり、POSIX 特有ではありません (ただし、Windows で動作/コンパイルできる保証はありません...)。
関連
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] Bashで通常のファイルが存在しないかどうかを判断する方法を教えてください。
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] Git リポジトリで削除されたファイルを検索して復元する方法
-
[解決済み] Pythonでファイルやフォルダを削除する方法は?
-
[解決済み] Microsoft Officeをインストールせずに、C#でExcel(.XLSおよび.XLSX)ファイルを作成するにはどうすればよいですか?
-
[解決済み] ファイルの内容からJavaの文字列を作成するにはどうすればよいですか?
-
[解決済み] ファイルを作成し、書き込むにはどうすればよいですか?
-
[解決済み] なぜalloca()の使用はグッドプラクティスとみなされないのでしょうか?
-
[解決済み】Rubyでバイナリファイルを文字列として読み込む
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
構造体の配列--[エラー] '['トークンの前に一次式があることが予想される
-
#137: 式は変更可能なlvalueでなければならない問題 // 文字列配列の代入問題
-
[解決済み] C言語でchar配列をコピーする方法は?
-
[解決済み] ⑭と⑯は何のためにあるのですか?
-
[解決済み] C言語で関数型プログラミングを行うためのツールにはどのようなものがありますか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] 演算子 *, /, +, -, % を使わずに 3 で割る。
-
[解決済み] LD_PRELOADのトリックとは何ですか?
-
[解決済み] C言語でファイルの内容を文字列に読み込むには?