問題タブ [fread]
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 - fread.PNGファイルの最初の5バイトのみ
ゲームのリソースを1つのファイルにパックするためのシンプルなリソースパッカーを作成しました。私がアンパッカーを書き始めるまで、すべてが順調に進んでいました。パックした.txtファイル(26バイト)がリソースファイルから正常に出力され、問題なくすべてのデータが保持されていることに気付きました。ただし、リソースファイルにパックした.PNGファイルを読み取ると、最初の5バイトはそのままで、残りは完全に無効になりました。
これをパッキングプロセスまでたどると、freadが.PNGファイルの最初の5バイトしか読み取っていないことに気付き、その理由を一生理解できません。ファイルの長さがわずか5バイトであることを示す「EOF」もトリガーされますが、実際には、100ピクセル×100ピクセルの小さなポリゴンの787バイトのPNGです。
このPNGファイルをバッファに読み込むための別のアプリケーションを作成してこの問題をテストしたところ、同じ結果が得られ、5バイトしか読み取られませんでした。
その小さな個別のアプリケーションのコードは次のとおりです。
誰かが私の愚かな間違いを指摘してもらえますか?
php - PHPで巨大なテキストファイルを読むには?
サイズが を超えるテキスト ファイルはほとんどありません30MB
。
このような巨大なテキスト ファイルを PHP から読み取るにはどうすればよいですか?
php - キャッシュされたファイルのロードは、キャッシュしない場合よりも時間がかかります-キャッシュファイルの読み取りは問題ではなく、出力されます
私はいくつかのデータベースクエリと多くの訪問者を持つサイトを持っているので、id キャッシュを考えました。
これはphpなので、ob_start()などを使って内容を取得し、ファイルを保存します。これは速いです。
0.05秒かかります。(キャッシュする必要さえありません)。
問題はファイルのロードにあります。
私がこれを行う場合:
0.43秒かかります。
私が行った場合
(つまり、ファイルを読み取り、出力しないでください) 0.05 よりも高速です。
もし私がそうしたら
再び 0.4 秒かかります。
これをスピードアップする方法はありますか?基本的に、キャッシュ全体を一度にエコーする(または readfile が行う)と、その場でページを生成するよりも時間がかかるようです。
psキャッシュファイルのファイルサイズは約41キロバイトです。問題が大きなファイルへのロードであることを確認するために完全にテストしました。readfile($smallfile) を実行します。速いです。キャッシュファイルが大きいときにキャッシュファイルを出力するときだけ遅い
編集 - また、このスクリプトを別のサイトで使用しており、キャッシュ ファイル (かなり基本的なページ) がはるかに小さく、高速化されています。ページに大量のデータがあるため、大きなキャッシュ ファイルが必要なので、40kb から取得することはできません。
c - fread() がバッファに書き込んでいない
こんにちは、fread はファイルからバッファに何も読み取っていません。その理由がわかりません。誰かが私にヒントや正しい方向へのプッシュを与えることができますか?
c - 書き込むバイト数だけで十分なのに、なぜ fwrite にサイズとカウントの両方のパラメーターがあるのですか?
C では、fwrite と fread は、書き込む要素の数と各要素のサイズの両方を取ります。書き込むバイト数は単純に要素のサイズ倍に等しいため、書き込む必要があるバイト数を示すパラメータがあれば、より明白で一般的なように思えます。これらの機能の設計には正当な理由があるのでしょうか、それともその理由は古代に失われたのでしょうか?
c - 大きなファイルの場合、fread は失敗しますか?
16 GB のファイルを分析する必要があります。fread()
と を使用してファイルを順番に読み込んでいますfseek()
。それは実現可能ですか?fread()
このような大きなファイルでも機能しますか?
c - フレッドコールを中断するには?
次のような状況があります。
fread 呼び出しでデバイスから読み取るスレッドがあります。デバイスからデータが送信されない限り、この呼び出しはブロックされます。このスレッドを停止すると、このスレッド内にぶら下がったままになります。
今、freadのmanページ内で次のことを見つけました:
エラー
単一 UNIX 仕様に準拠するすべてのシステムで、fread() 関数は、次の条件にリストされているように errno を設定します。
[EINTR] シグナルの受信により読み取り操作が終了し、データは転送されませんでした。
これは、別のスレッドからの呼び出しを中断する方法があることを意味します。しかし、方法がわかりません。fread コールを中断する信号を送信する方法を教えてもらえますか? そして、私が送信する必要がある信号は何ですか?
更新 08-10-10 09:25
私はまだそれを機能させていません。kill() と pthread_kill() を異なるシグナルで試しました。しかし、 fread() 呼び出しを中断するものはないようです。私が機能した唯一のことは、アプリケーション全体を強制終了することですが、それは私が望んでいることではありません。
php - PHP のフレッド問題
ネットワーク データを収集するために、職場で PHP telnet スクリプトを作成しているときに問題が発生しました。
'Action: Status' コマンドから返されるデータの量は任意のサイズになる可能性があるため... 13 行目の fread() で静的な数値を使用することに懸念があります。データの最初の行 (テーブルなしの META HTTP 行...)。PHPを使用してソケットから任意の量のデータを取得するにはどうすればよいですか? 助けてください
iphone - iPhoneで.wavファイルから読み取るときにデータがnullですか?
.wavファイルを読み取って、FFTアルゴリズムへの入力として生データを提供しようとしています。次のコードを使用して.wavファイルを読み取りました。
ChunkIDは値「caff」を与え、フォーマットは「desc」を与えます。データに値が表示されません。私は何かを逃したことがありますか?生の音データをFFTへの入力として提供したいと思います。
php - ファイルが静的である必要があるのに、なぜfopenはTwitterへの呼び出しからさまざまなファイルを生成するのですか?
APIを使用してTwitterユーザーのリストを取得しようとしています。ブラウザ(http://api.twitter.com/1/statuses/followers.xml?screen_name=atomictom)でAPIをクエリすると、100ユーザーのXMLドキュメントが返されます。
ただし、私のphpファイルからクエリを実行する場合:
1人、場合によっては2人のユーザーのみを返します。リフレッシュすると実際に変化します!なぜこれが起こるのかについてのアイデアはありますか?fopenまたはfreadに問題があると思われます。残念ながら、freadではfilesize($ file)を使用できません。これは、文字列ではなくリソースであるためです。
手伝ってくれてどうもありがとう!