問題タブ [file-pointer]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
3 に答える
115 参照

c - コード 1 でセグメンテーション違反が発生するのはなぜですか?

コード 1:

コード 2:

ファイル内の行をソートするためのコードを作成しました。ファイルのすべての行を動的に割り当てられたメモリにコピーしました。ループ 1ステートメント 1を記述すると、セグメンテーション違反またはメモリが利用できなくなります。だから私はCODE2を修正して書いた。ここでは、出力が正しく取得されています。

loop1で何が起こっているのか知りたいです。

ファイルからデータをフェッチし、同じループで動的に割り当てられたメモリにコピーしています。割り当てとコピーを同時に行うのは間違っていますか?

0 投票する
1 に答える
346 参照

c - 関数に FILE ポインターを渡すと、「FILE は不明な型名です」というエラー メッセージが表示される

関数にポインターを渡そうとしていますが、コンパイラーが「FILE は不明な型名です」というエラーをスローします。

主に:

関数宣言はエラーをスローします:

.h ファイルなどを含めていませんか?

0 投票する
3 に答える
216 参照

c - 親は子出口でパイプ eof を見ますか?

を作成し、次に を作成するpipeとしますfork。親ではclose、書き込み側とfdopen読み取り側で を取得しFILE*ます。子では、あなたclose stdout、パイプの両端を 、パイプの両端、およびにdup2書き込みます。d 子の動作や親で行われた他の呼び出しなど、どのような条件下で、子が消費後に終了したときに親に表示されるか、ハングなどの呼び出しが発生しますか?stdoutcloseexecexeceofFILE*stdoutgetline

0 投票する
0 に答える
1333 参照

c - C remove() 関数が機能しない

Mac で作成したプログラムを Windows システムに実装しようとしていますが、この最後の関数で多くの問題が発生しています。

このプログラムは非常に大きなファイルを取得し、最初にそれを目次ファイルと本体ファイルに分割します。次に、本体を受け取り、それを何百もの個別のセクション ファイルに分割し、そこからプログラムの実際のタスクを実行します。最後に、これらの余分なファイルをすべて削除したいと思います。これらのファイルはディレクトリを乱雑にするだけだからです。Unix Mac 環境では完全に動作しますが、PC のコマンド プロンプトで実行しようとすると、remove() 関数はすべてのセクション ファイルに対して -1 を返し、削除しません (ただし、セクション ファイルは正常に削除されます)。テーブルと本体のファイル)。system(del fileName) を使用して、より強引な方法も試しましたが、ファイルが別のプロセスによって使用されているため、これも機能しませんでした。fopen() が表示されるたびに、なぜこれらのファイルが開いているのかわかりません。fclose() でフォローアップします。例外は、ファイルが開いているかどうかを確認するときです。

これが問題でしょうか?実際にファイルを開かずにファイルが開いているかどうかを確認する方法はありますか、またはこの方法でチェックされたファイルを閉じる方法はありますか? それにダミーポインターを割り当ててコーディングしてみました:

しかし、これもうまくいきませんでした。ファイル パスだけを fclose() 関数に渡すことは可能ですか (たとえば、fclose(C:\users\USER\desktop\fileName.txt のようなもの)?私のエラーメッセージはコマンドプロンプトに正しい名前を出力するので、正しいファイル名。

どんな入力でも大歓迎です!!! ありがとう。

注: tableArray は、見つかった場合はインデックスを返し、見つからなかった場合は 0 を返すプログラムに実装された検索関数のため、1 から始まります。後から考えると、見つからなければ-1を返し、インデックスをゼロから開始する方がよかったのですが、それは別の問題です

アップデート:

以下は、セクション ファイルの作成に使用されるコードです。