問題タブ [filehandle]

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 投票する
1 に答える
431 参照

perl - 別のパッケージで呼び出されたときにsysreadなどのコア関数をオーバーライド/ラップする最善の方法

私はPerlで書かれたかなり複雑なアプリケーションに取り組んでいます。私はその言語にかなりの経験がありますが、私はこれに困惑しています。

コンストラクターに渡すファイルハンドル(この場合は双方向ソケット)のさまざまな操作にsysreadとsyswriteを使用するモジュールFooを使用しています。

次のことを行いたい:私が書いている別のモジュール(これをBarと呼びましょう)から、Fooに属するメソッド内から呼び出された場合にのみsysread/writeが動作する方法を変更したい

Sysread et alは、他のすべての場所で通常どおりに機能する必要があります。Fooではsysreadの使用は変わらないと安全に想定できます。

これを実行したい理由は、前述のファイルハンドルからの読み取り/書き込みのバイト数を追跡​​する必要があるためです。この時点で、これは私がこの情報を取得できる唯一の方法のようです-基本的にsysread/writeからの戻り値を保存します。

品質が良ければ、CPANの何でも問題なく使用できます。


更新:特定の問題に対するより良い解決策を見つけ、ここにコードを投稿しました:

https://github.com/Hercynium/Tie-Handle-CountChars

私のアプリケーションでは非常にうまく機能しているようですが、より徹底的にテストし、実際の単体テストをいくつか作成するまで、CPANに投稿しません:)

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

perl - マップとファイルハンドルを使用したPerlのメモリ使用量

map { function($_) } <FILEHANDLE>;perlを使用する場合、呼び出しはファイル全体をメモリにロードしますか?

0 投票する
4 に答える
123 参照

php - 記号「#」の直後の読み取りtxtファイル行のPHP

私はこのtxtファイル構造を持っています:

# 記号の直後にこのファイル データを読み取る必要があります。行全体を読むためだけの私のPHPコード。

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

perl - perl保存utf-8テキストの問題

単一ファイルのファイルベースのブログである pplog をいじっています。

ファイルコードへの書き込み:

入力テキスト:

ファイルに保存すると、次のようになります。

Eclipse を使用してファイルを編集し、通常のレンダリングを行うことができます。ファイルへの印刷中に問題が発生しました。

基本情報: utf8 を使用しない Strawberry perl 5.12; use utf8; を試してみましたが、効果がありません。

ありがとうございました。

--- 編集 --- コメントありがとうございます。私はコードをたどった:

コードは新しいコンテンツを追加します:

sub r コマンドを CGI.pm 関数に転送します。

CGI.pmで

さらに問題を追跡すると、ブラウザのデフォルトが iso-8859-1 であることがわかり、手動で utf-8 に設定しても、文字列が iso-8859-1 としてサーバーに返されます。

ついに、

-charset => qw(utf-8) パラメーターをヘッダーに追加します。漢詩はやはり漢詩です。

Schwern のコメントに感謝します。問題を突き止めてリーソンを学ぶきっかけになりました。

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

multithreading - printfおよびscanfを介したスレッド通信(Linux)

Linuxでの作業とC++の使用。スレッドを開始するプログラムがあります。printfとscanfを介して通信するには、メインスレッドと子スレッドが必要です(両方のスレッドのコードはscanfとprintfを使用し、stdinとstdoutと通信することを前提としています。そのままにしておく必要があります)。printfとscanfをオーバーライドすることができたので、これらの関数を完全に制御できます(* pthread_self *を使用して呼び出し元のスレッドを識別できます)。

あとは、通信の各方向に1つずつ、合計2つのファイルハンドルを作成し、通信をバッファリングする必要があります。これはどのように行うことができますか?

通信が非常に長く、ディスクに保存する余裕がないため、ディスク上のファイルに書き込んでも問題は解決しません。ただし、読み取りスレッドは書き込み後すぐにデータを読み取るため、多くのバッファリングは必要ありません。

特に、一方のスレッドがscanf( "%s"、&x)を呼び出すと、もう一方のスレッドが文字列を書き込んで空白追加するまでブロックされることが重要です(したがって、文字列は完全に書き込まれる前に読み取られません)。

0 投票する
2 に答える
581 参照

objective-c - Objective-C ファイルの入出力エラー

上記のコードは次のエラーを示します

2011-07-07 21:38:08.703 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: 認識されないセレクターがインスタンス 0x100111690 に送信されました

2011-07-07 21:38:08.704 iMessages[86493:903] -[NSPlaceholderString stringWithContentsOfFile:encoding:error:]: 認識されないセレクターがインスタンス 0x100111690 に送信されました

0 投票する
5 に答える
20865 参照

c++ - 拡張子なしのファイル名を取得しますか?

私は C++ の世界に慣れていないので、非常に些細な問題、つまり拡張子のないファイル名を取得することに行き詰まりました。

TCHAR含む変数がsample.txtあり、 のみを抽出する必要があります。渡した値と同じ値を返す関数sampleを使用しました。PathFindFileName

解決策をグーグルで調べてみましたが、まだうまくいきませんか?!

編集:私は常に3文字のファイル拡張子を取得します。次のコードを追加しましたが、最後にMontage (2)««þîþどうすればジャンク文字を回避できますか?

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

php - php://memoryファイルハンドルを使用してcURLPUTリクエストを実行するにはどうすればよいですか?

サードパーティのPHPクラスを使用してAPIにアクセスしていますが、次のコードがあります。

最後の行、つまりこれは次のとおりです。

エラーが発生しました:

警告:curl_setopt()[function.curl-setopt]:タイプMEMORYのストリームをSTDIOファイルとして表すことはできません*

私は何が間違っているのですか?

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

c - C のシステム コールでのファイルハンドルの問題

私の C プログラムでは、「cat」UNIX コマンドを実行するシステム コールを次のように作成します。

プログラムをコンパイルして実行すると、コマンドが正しく実行されません。代わりに、次のエラーが表示されます。

私の質問は 2 つあります。

  1. このコードが正しく機能しないのはなぜですか?どうすれば修正できますか?
  2. perl -e 'system("cat temp.txt")'コマンドラインで試してみると、期待どおりに動作します。Perl がファイルハンドルを処理する方法と C がファイルハンドルを処理する方法の違いは何ですか?

ありがとう!

更新: コメントのおかげで、私は問題をすぐに理解しました。プログラムの早い段階で誤って stdout を閉じてしまったため、catプログラムが stdout に出力しようとしたときにエラーが発生しました。したがって、C と Perl のファイル ハンドルの処理方法に違いはないように見えます。次のコマンドは、まったく同じエラーを生成します。

0 投票する
4 に答える
4041 参照

python - Pythonスクリプトにデータブロックを保存するPythonicの方法は何ですか?

Perl では__DATA__、スクリプトでトークンを使用して、データ ブロックの開始をマークすることができます。DATA ファイルハンドルを使用してデータを読み取ることができます。スクリプトにデータ ブロックを格納する Pythonic の方法は何ですか?