タグ

cとunixに関するsyo-yuのブックマーク (8)

  • ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改

    ディレクトリの中にある大量のファイルを高速に読み込む方法が知りたかったので、実験してみた。想定しているシチュエーションは、一つ一つのファイルは数KB程度だが数が多い、という場合である。適当な順番でアクセスすると、ランダムアクセスになってしまいとても時間がかかる。個々のファイルを読み込む順番はどうでも良く、すべてのファイルを処理することさえできればいいので、原理的にはシーケンシャルアクセスで処理できてしかるべきである。 まず、ファイルシステムについて。HDDやSSDなどのハードウェアにアクセスする際には、ファイル名などという概念はもちろん存在しない。ファイル名と実際のディスク上の対応を管理するのがファイルシステムの主な役割である。ファイルシステムは、ファイル名からそのファイルに対応するブロック番号(メモリアドレスみたいなもんだな)を調べて、そのブロック番号を指定してHDDやSSDにアクセスす

    ディレクトリの中にある大量の小さなファイルを高速に読み込む方法 - 射撃しつつ前転 改
  • lsコマンドをハックしてみよう

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ショッピング事業部開発部の吉野です。 Yahoo!ショッピング開発部では新人エンジニア向けにコマンドのソースコードを読むことを奨励しています。 その初期の題材として、lsコマンドがよく挙げられます。 今回は「lsコマンドをハックしてみよう」と題し、lsコマンドについてお話しさせていただきます。 突然ですがエンジニアの皆さん、lsコマンドのソースコードを読んだことはありますか? 読んだことのない方はぜひ一度、目を通しておくことをおすすめします。 意外と知られていませんが、lsはcd,pwdなどのコマンドと違いシェルの組み込みコマンドではありません。 一口にlsと言っても、複数のソースコードが存在します。 代表的なのはGN

    lsコマンドをハックしてみよう
  • The Open Group Base Specifications Issue 6

    <body> <h2>Frame Alert</h2> <p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client.<br> Link to<a href="mindex.html">Non-frame version.</a></p> </body>

  • C言語: UNIX最速ファイルコピー

    Created: Kazuki Ohta, 2006/06/14 Last Update: Kazuki Ohta, 2006/06/14 「write(2)の正しい使い方」と同じく、OS演習でやった事の延長線の記事を書いてみる。お題は「UNIX上で大規模ファイルを最速でコピーする方法」だ。一般的に、UNIXでファイルをcopyする際には以下のような方法が有る。 read -> write read -> write with posix_fadvice mmap -> mmap -> memcpy -> fsync mmap -> mmap -> memcpy -> fsync with madvise mmap -> write mmap -> write with madvise read, write, mmap辺りは良いとして、posix_fadviseというシステムコールが有

  • Super Technique 講座〜シグナルとコールバック

    この文書ではまず、関数ポインタとその型チェックについて述べた後で、UNIXのシグナル機能について解説する。そして、ウィンドウシステムのプログラミングで多用される「コールバック」について解説する。 ちなみにシグナルの機能は質的には UNIX に固有である。他のOSにもないわけではないが、その異同については筆者は関知しない。また、UNIXでのシグナルの実装については Linux を基準に解説をしていく。UNIX シグナルは、実は具体的な実装において大変差がある機能なのだが、一応 POSIX で「こう実装しなさい」という風に決まってはおり、後発の Linux は比較的マジメにそれを実装しているので、まあ、Linux を基準にするのが無難というものであろう(ユーザ比の問題を別にしても)。勿論、伝統的に重要ないわゆる「SysVシグナル」「BSDシグナル」についてもしっかりと解説しているが、もはや「

  • 日本IBM

    ワークプレイスを最適化し、虎ノ門に社を移転 日IBMは、2024年1月に、虎ノ門・神谷町エリアに事業所を新設し、そこに社を移転します。 ニュースリリース watsonx Graniteモデル・シリーズ、IBM watsonxモデル向けお客様保障の提供開始を発表 IBM TechXchange Conference Japan(2023年10月31日~11月1日) 無料評価版:エンタープライズ・グレードのAIモデルを構築 無料評価版:あらゆるデータを対象に、AIワークロードを拡張 SPSS Statisticsの年間サブスクリプション選択で10%割引 ストレージの構成比較から見積までを簡単に

    日本IBM
  • UNIXカーネルソースツアー!

    UNIXカーネルソースツアー! ハッカーの皆様、UNIXカーネルソースツアーへようこそ。すべて自由行動となっておりますので、ご自由にお歩きください。 ツアーは巨大なものですので、一括ダウンロードは御遠慮ください。当社のネットワークは一括ダウンロードの負荷には耐えられません。代わりに、 GNU Global ソースコードタグシステムを使って、あなたのコンピュータ上で同じものを生成できます。 ではよい旅を。 現行シリーズ Linux 3.12 RELEASE Linus Torvalds 氏がヘルシンキ大学の学生だった頃に書きはじめたカーネルで、今や世界を席捲しています。通常はGNU オペレーティングシステムの一部として配布されています。 FreeBSD 9.2 RELEASE MacOSX のベースとなっていることでも知られる、4.4BSD起源のオペレーティングシステムです。Yahoo 等の

  • pthread

    以前に、スラッシュドット・ジャパンのSilphireの日記で連載していた、pthread日記をまとめているページです。pthread日記には、The Open GroupによるThe Single UNIX® Specification, Version 2の<pthread.h>に載っているAPI、全77個の解説が完了しています。なので、ここに書かれていないAPIについては、pthread日記を参照して下さい。 pthread_* pthread_create() pthread_exit() pthread_join() pthread_detach() pthread_equal() pthread_once() pthread_self() pthread_cleanup_push() pthread_cleanup_pop() pthread_key_create() pthre

    syo-yu
    syo-yu 2005/10/13
    pthreadの日本語リファ
  • 1