タグ

writeに関するyukimori_726のブックマーク (5)

  • Linux システムコールのブロック・ノンブロックまとめ

    はじめに Linux にはブロックするシステムコールとノンブロックなシステムコールがあります。さて、システムコールが「ブロックする」とはどういうことでしょうか。よく、ブロックするシステムコールとは「処理が完了するまでプロセスの動作が中断され待たされること」という説明を見ますが、より詳細に、どういう処理の場合に待たされるのか、整理してみましょう。 「ブロックする」とは Linux において、システムコールがブロックするとは、「プロセスが、システムコール呼び出しの延長で待状態(TASK_INTERRUPTIBLE or TASK_UNINTERRUPTIBLE) に遷移し、CPU時間を消費せずにあるイベントが完了するのを待つようになる」、ことを指します。ブロックするシステムコールのうち代表的なものと、完了待ち対象イベントをまとめると、以下のようになります。 システムコール待ち対象イベント re

  • C言語システムコール-write CapmNetwork

    C言語システムコール-write writeシステムコール 概要 writeはファイルディスクリプタが示すファイルに対してバッファ(buf)のデータを指定バイト数(count)書き込みます。 writeはreadと異なり、戻り値として得られる実際の書き込みバイト数が指定バイト数より少なくなる可能性は低いといえます。 writeの注意点 writeシステムコールで書き込んだデータは、直ちにディスクに反映されるわけではありません。 writeで書き込んだ内容は、一旦カーネルのバッファへ格納され、カーネルの判断でシステムに余裕がある状態の時に実際に書き込み処理を行います。 そのため、データが書き込まれるタイミングや実際に書き込まれたかどうかを知ることは困難です。 この問題を回避するために、sync()やfsync()という関数があります。 syncを呼び出すと、バッファキャッシュ中の更新されたデ

  • ファイル読み書き file open read write

    ファイル読み込み レガシーな書き方 file = open("filename", "r") try: whole_str = file.read() finally: file.close() # finallyでcloseすべき withブロックを使用してcloseを自動的に行う方法。(こちらを推奨) with open("filename", "r") as file: whole_str = file.read() file.read([size])で指定したバイト数を読み込み。size未指定の場合はすべて読み込み。 file.readline()で1行読み込み。文字列に改行文字は残る。最後の行を読み込んだ後に””(空文字)がかえる。 file.readlines()で全行を読み込んでリストを返す。 ファイル書き込み レガシーな書き方 file = open("filename",

    ファイル読み書き file open read write
  • Bufferreader and Bufferwriter for reading and writing hdfs files

    I'm trying to read from a hdfs file line by line and then create a hdfs file and write to it line by line. The code that I use looks like this: Path FileToRead=new Path(inputPath); FileSystem hdfs = FileToRead.getFileSystem(new Configuration()); FSDataInputStream fis = hdfs.open(FileToRead); BufferedReader reader = new BufferedReader(new InputStreamReader(fis)); String line; line = reader.readLine

    Bufferreader and Bufferwriter for reading and writing hdfs files
  • WriteBack処理 - Linuxカーネルメモ

    1. 概要 プロセスがファイルへの書き込みを行うと、カーネルは通常はページキャッシュ(ディスクキャッシュ)に書き込むだけで一旦処理を完了する(ディスクヘの書き込みは行わない)。このデータが書き込まれたページキャッシュは、ディスク上のデータと内容が不一致になっていることを示すためDirty状態になる。Dirty状態のページキャッシュはカーネルスレッドpdflushによって、遅延してディスクに書き込まれる。この処理をWriteBack処理と呼ぶ。 2. WriteBack処理の動作 2.1 WriteBack処理の起動 WriteBack処理はカーネルスレッドpdflushによって実行される。カーネルスレッドpdflushを起動するには、wakeup_pdflush()、balance_dirty_pages_ratelimited()が使われる(図1)。 wakeup_pdflush()はt

  • 1