問題タブ [lseek]
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.
c - ESPIPEエラーを与えるlseek
通常のファイルを開いています。これはレコードのデータベースとして機能します。私はそれを次のように開きました:
次に、私のfind_record
関数で、オフセットを先頭に移動します。
エラーをスローしESPIPE
ます。今、私は何が起こっているのか分かりません。ファイル記述子はパイプとして扱われますか? はいの場合、なぜですか?
lseek
実際に働いていますか?ret_val
-1ではないため、その必要があります。
c - C でのストリーミング エンジンのベスト プラクティス
LANG: C / ENV: Linux
私はストリーミングエンジンを開発しています。今のところ、ストリームを開始、停止、一時停止できますが、シークは私に多くの頭痛の種を与えている操作です。以前にここで質問し、コード内のいくつかの問題を修正しました答えます。
lseek()関数を使用して、オープン ストリーミング ファイル記述子を最初の引数として渡します。また、次のコードのように、送信に UDP を使用しています。
ストリーミング中にシークしようとすると、ストリーミングが停止し、画像がハングします。
注意すべきことはありますか?たとえば、変更を有効にするためにファイルをシークした後にsleep()またはnanosleep()を試行するなどです。
そのようなエンジンのベスト プラクティスに関する例、論文、関連記事は見つかりませんでした。
編集:
テスト後、ファイルは引き続きストリーミングされたようですが、ネットワーク上の受信デバイスがストリーム接続をキャッチしなくなり、シーク時間を差し引いて終了までの時間を計算すると、ストリームは正常に終了したようです。
コードスニペット:
c - ルシークが機能しない
lseek を使用して txt ファイルのサイズを確認しようとしています。残念ながら私は働きません。私の T.Txt には 16 文字が含まれています:ABCDABCDDABCDABCD 何もありません。したがって、number 変数には 16+1 が必要です。なぜ代わりに19なのですか?SEEK_END-1 を使用して最後の位置 1 から開始できない 2 番目の問題。そのお手伝いをさせていただければ幸いです。
c - lseek() が呼び出されたときに POSIX read() 関数がバイトを読み取らない
私は次のプログラムを持っています
/var/testfile の次の内容:
プログラムの出力:
lseek() 呼び出しの後に read() 関数がバイトを読み取らない理由がわかりません。これの理由は何ですか?最初の read() 関数呼び出しから得られるのと同じ結果が期待できます。
c - lseek() を使用すると、繰り返される文字が出力されます
これを実行すると、私に与えられます。
テスト ファイルには、"TEST" という単語だけが含まれています。単語を逆に印刷できるようにしたい。
c - C - ファイル内の構造体を読み取る
こんにちは、ファイルに書き込んだ構造体の情報を読みたいのですfwrite
が、これらの情報を抽出できないという問題があります。私は2つのファイルを手に入れました
tttfs.h:
tfs_create.c:
これで、7 ブロックのディスクを作成し、7 ブロックすべてをファイルに書き込みます。最初のブロックでは、ディスクのサイズ (7) をリトルエンディアンで書きました。ブロック[0] = 00、ブロック[1] = 00、ブロック[2] = 01、ブロック[3] = 11などです。
しかし、結果を印刷すると、次のようになります。
私が期待していたものではありませんread
でしたが、同じ結果が得られました。したがって、私のプログラムはディスクから情報を書き込みませんでした。または、ブロックをディスクに書き込むときに問題がありますか?
c - read write と lseek を使用して、ファイルまたは stdin の最後の 10 行を出力します
私は tail 関数の実装に取り組んread()
でwrite()
おりlseek()
、I/O には と のみを使用することになっています。これまでのところ、次のようになっています。
これまでのところ、10行を超えるファイルでは機能しますが、10行未満のファイルを渡すとブレーキがかかり、そのファイルの最後の行を出力するだけで、stdin
. 誰かがこの問題を解決する方法を教えてくれたら、それは素晴らしいことです:D