タグ

2013年5月14日のブックマーク (8件)

  • Linux カーネル空間からのファイルIOの話 + 他: 俺のインターフェイス

    当は libapr のネットワークプログラミングについての訳を載せようとしたのだが。その前に、ソケットとは何ぞやという話をしたかった。しかし、書き残せるほど知識が溜っていないので、これについても次回以降に話をする。 書き残したい話は、どれもこれも中途半端な知識しかないので、今回は GNU/Linux の小ネタの紹介を行う。 ○ カーネル空間からのファイルの(読み)書きを行う話 ユーザ空間からファイルの読み書きを行う時は、open システムコールを呼び出し、read/write システムコールを呼び出せばいい。 ファイルオープン処理では、ファイルオープン時にプロセスが持つファイルテーブルに、生成したファイルオブジェクトを登録して、その登録したファイルオブジェクトのファイルテーブル内のオフセットをファイルディスクリプタとしてユーザに返す。以降、ユーザプログラムはこのファイルテーブルのオフセッ

    Linux カーネル空間からのファイルIOの話 + 他: 俺のインターフェイス
    letsspeak
    letsspeak 2013/05/14
    Linux カーネル空間からのファイルIOの話 + 他:俺のインターフェイス:So-netブログ
  • Linuxをはじめよう!:アセンブリをやってみよう! 0x140 ~システムコール~

    今回は、ようやくシステムコールについての説明です。 また、前回のスタックが少々難しい内容であったため、その復習も 兼ねたいと思います。 スタックは、espとebpという二つのレジスタによって示される、 手軽に扱えるメモリ領域でした。 ebpがスタックの最下点を示し、espがスタックの最上点を示します。 これを利用するためにpush命令とpop命令を使います。 push命令でスタックを伸ばして(espの値を減算)値を入れ、 pop命令で値を取り出してスタックを縮め(espの値を加算)ます。 前回触れていなかったのは、スタックはメモリの低位アドレスに 伸びるということです。 低位というのは、アドレスの値を比べたときにその値が小さい方 ということですね。 たとえば、今esp=0x884c954cだったとき、4バイトのデータを プッシュすると、esp=0x884c954c - 4 = 0x884c

    letsspeak
    letsspeak 2013/05/14
    Linuxをはじめよう!:アセンブリをやってみよう! 0x140 ~システムコール~
  • Man page of OPEN

    Section: Linux Programmer's Manual (2) Updated: 2020-11-01 Index JM Home Page roff page 名前 open, openat, creat - ファイルのオープン、作成を行う 書式 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int creat(const char *pathname, mode_t mode); int openat(int dirfd, const char *pathname, int flags); int

    letsspeak
    letsspeak 2013/05/14
  • Linux の close は fsync 相当を調べる - naoyaのはてなダイアリー

    Linuxのcloseは暗にfsyncするから、ここであげられている 100000回繰り返し open 8K write close というパターンだとfsyncコストが見えちゃうので良くないんじゃないかな とのことで、そうなのか! と思ったので例によって深追いしてみました。 まず fsync(2) の実装は fs/sync.c にあります。 asmlinkage long sys_fsync(unsigned int fd) { return __do_fsync(fd, 0); } static long __do_fsync(unsigned int fd, int datasync) { struct file *file; int ret = -EBADF; file = fget(fd); if (file) { ret = do_fsync(file, datasync);

    Linux の close は fsync 相当を調べる - naoyaのはてなダイアリー
    letsspeak
    letsspeak 2013/05/14
    Linux の close は fsync 相当を調べる
  • ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes

    Perl Hackers Hub 第6回 UNIXプログラミングの勘所(2)を読んでいたがよくわからなかったので、Operating System ConceptsやMANなどを読んで一から理解してみる。 Operating System Concepts 作者: Abraham Silberschatz出版社/メーカー: John Wiley & Sons Ltd発売日: 2009/02/13メディア: ペーパーバック購入: 1人 クリック: 39回この商品を含むブログ (4件) を見る open()システムコール The open() system call first searches the system-wide open-file table to see if the file is already in use by another process. If it is, a

    ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes
    letsspeak
    letsspeak 2013/05/14
    ファイルディスクリプタ(file descriptor)について調べてみた - kotaroito's notes
  • Wrapping malloc - C

    letsspeak
    letsspeak 2013/05/14
    Wrapping malloc - C
  • How can I use Git's malloc wrapper in my code?

    letsspeak
    letsspeak 2013/05/14
    How can I use Git's malloc wrapper in my code?
  • PC�o������ | Unix�nerrno����

    �����������d���������������������o�����������B �����������Y��������������������������(*�L�D�M) Unix�n������タ�s�����G���[�����������������G���[�l���������B �R�������������������������B�B�B��������Web������������������(T_T) ��������ゥ���������������������������������������B Unix�n�������������v���O�����������������A�����I���l��-1�������A ����errno�������G���[�R�[�h�����������A�������������������

    letsspeak
    letsspeak 2013/05/14
    Unix系errno一覧