You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
Perl › ファイル入出力 › here 変更したい箇所だけをピンポイントで指定して、変更して書き戻すランダムアクセスのサンプルです。ランダムアクセスというのは一般的に固定長のバイナリファイルに対して使われますが、簡便のためここでは固定長テキストファイルを使います。 use strict; use warnings; # seek の位置を指定するオプションを使用するために使用 use Fcntl qw(:seek); # ランダムアクセスによってファイル内容を書き換える。 my $file = "data_20080810.txt"; # 読み書きモードでオープン(あまり安全でない) open(my $fh, "+<", $file) or die "Cannot open $file"; # 16バイト my $len_rec = 16; # レコードの先頭 my $pos_name
TEDIA会員に登録したメールアドレスとパスワードを入力してください メールアドレス: パスワード: パスワードを忘れた方はパスワードの確認を行ってください。 TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます >> テクノロジーポータル TEDIA トップページへ戻る << ユーザースペースでのI/Oスケジューリング 多数にのぼるI/O要求を出して性能を極限まで酷使するI/O集約型アプリケーションでは、保留中のI/O要求を並べ替えたり併合することができます。Linux I/Oスケジューラと同じ働きです。* I/Oスケジューラがブロックの観点から要求を並べ替え、シーク動作を最小限に抑制し、ディスクヘッドの円滑な線的移動を実現してくれると分かっている時、どうして同じ作業を2度行う必要があるでしょうか?多数のI/O要求を並べ替えていない状態で提出するアプリケーションを考えて
以下は Perl 5.8.8 のソースを元に記述しました。Perl 5.10 でもそう変わってはいないと思いますが,結構内部が変更されているので違うかもしれません。大まかには同じだと思います。 イントロダクション Perl でのファイルハンドルは内部的には [http://search.cpan.org/perldoc?IO::Handle:title=IO::Handle] オブジェクトとして保持されています。そのような記述は perl5004delta くらいでしか見つかりませんでした。ラクダ本にもなかったような。 Internal change: FileHandle class based on IO::* classes File handles are now stored internally as type IO::Handle. The FileHandle module
JavaScript File オブジェクト の案 by Henri Torgemane, Michael Ang <mang@subcarrier.org>, and Vladimir Livshits <val4@cornell.edu> この文書は、JavaScript File オブジェクトについての API 案を記述している。 多くの API が、実装された (だがテストしていない)が、 また終わっていない作業がある。 mailto:nboyd@atg.comに意見を送ってください。 JavaScript で書いた多くのスクリプトは、I/O 機能、特に普通のファイルへのアクセスを必要としている。 この文書は、ホストの実装が実装することが出来る、そのような File オブジェクトを説明している。 そのインターフェースは、Server Side JS File
自分用メモ。epoll & Non-Blocking IO による echo サーバの例。 使い方のテスト以上のものではないので、そのままではいろいろまずい。epoll_create や socket で取得した file descriptor を close してなかったり。まねしないように。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/socket.h> #include <sys/types.h> #include <sys/epoll.h> #include <netinet/in.h> #define SERVER_PORT 10007 #define MAX_EVENTS 10 #define BAC
AsyncIOについて(その1)の続き. NONBlockでIO処理をする方法としてselectとシグナルを使う方法があるというのが前回の話だったが, selectはselectよりkqueue,epollで述べたとおり, ビジーループがかかるためあまり効率はよくなく,シグナル方式は制約があるためあまり使い勝手がよくない. というわけで新しく出てきたのがPOSIX Asynchronous I/O(AIO)という機構だ. これはIOのwaitをイベントドリブン形式にしてビジーループをなくそうというものだ. プログラムの流れとしては下記のようになる. 1. 対象となるファイルディスクリプタにシグナルハンドラもしくはイベントハンドラを登録しておく 2. aio_read/aio_writeを呼び出すと制御はすぐにユーザに戻る. 3.対象のファイルディスクリプタの処理が終わると登録されていたハン
最近のOSにはAsyncIO(AIO)という新しいI/Oの仕組みが導入されているようだ.lighttpdの次期バージョンではAIOを導入することで8割もパフォーマンスが上がったようで非常に興味深い. またあちこちのBlogを見る限りNonBlockingI/OやNonBlockingI/O+シグナルとAIOが混同されている気がしたので,それら整理してみたい. はじめに I/O処理であるシステムコールのread/writeは対象がディスクだったり,ソケットだったりデバイスだったりするわけだが,通常これらのIO処理はCPU処理やメモリ処理に比べ非常に遅いことが知られている. 通常readが行われるとreadが終わるまで,永遠に処理は戻ってこず,プロセス的には待ち状態になってしまう.これは「Blocking」と呼ばれる. 遅いディスクやデータがいつ来るかわからないソケットなどに対するIO処理では
アイオー。プロトタイプベース・オブジェクト指向言語のひとつ。IoLanguage でググるとヒットしやすい。メッセージ送信メタファとしてのオブジェクト指向としては現在の Smalltalk よりある意味純粋で、古の Smalltalk-72 を彷彿とさせる。SELF と NewtonScript (プロトタイプベース)、Act1 (アクター理論)から影響を受けていて、当然、両者の師匠格で同時に反面教師的存在でもある Smalltalk からの影響も大きい…ハズ。 文法面で ALGOL 系にひよってしまっている点では Ruby と同じだが、メッセージ送信モデルに立脚していて、メッセージ自体もエンティティとしてきちんと整備しているぶん、個人的な趣味としては Ruby より好感が持てる。設計者が Smalltalk に敬意を表しているし…(^_^;)。当初は Ruby ほど安定しては動かずがっか
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く