Version 46 (modified by mitty, 11 years ago) (diff)


  • sockets: AF_PACKET versus PF_PACKET

    Yes. AF_foo means address family foo, and PF_foo means protocol family foo. In Linux, they are always been the same values, I believe. Traditionally, the PF_foo constants were used for socket(), but AF_foo in the struct sockaddr structure.

    Thus, today, there really should be no difference between AF_foo and PF_foo.

  • PF_PACKETの仕組み - めもめも


    sock = socket(PF_INET, SOCK_STREAM, htons(ETH_P_IP));


  • TCP socketではwriteの後すぐにcloseしてはいけない - Togetter

    TCP socketではwriteの後すぐにcloseしてはいけない。 相手側に全てのデータが届いてからcloseする必要がある。 shutdown で書き込み側だけハーフクローズするとよい。 相手側がcloseしてから、こちらをcloseする。相手側がcloseしたことは、readを呼んでブロックさせておくと、読み込みバイト数==0 つまりEOFになったことでわかる。


build 32bit object on x64





  • Module Pervasives OCaml

    The initially opened module.

    This module provides the basic operations over the built-in types (numbers, booleans, strings, exceptions, references, lists, arrays, input-output channels, ...).

    This module is automatically opened at the beginning of each compilation. All components of this module can therefore be referred by their short name, without prefixing them by Pervasives.

  • OCaml プログラミング入門 (インストール)


    OCaml の対話的環境を提供するコマンド: ocaml は ライセンス上の問題から、 C-a で行頭に戻ったりする事や、ヒストリ機能、 などと言った GNU の readline ライブラリを使った便利な機能がありません。 emacs から対話的環境を使うのが一つには考えられます が、どうしてもターミナルから実行したい人は、 ledit と言うコマンドを使えば大丈夫です。 ledit ocaml と起動するだけです。


Fail Safe C

  • Ubuntu 12.04 LTS x86_64
  • mitty@precise:~$ sudo aptitude install ocaml-nox ocaml-native-compilers ocaml-findlib libextlib-ocaml-dev camlp4 libgc-dev libgdbm-dev
    The following NEW packages will be installed:
      camlp4 ledit{a} libextlib-ocaml{a} libextlib-ocaml-dev
      libfindlib-ocaml{a} libfindlib-ocaml-dev{a} libgc-dev libgc1c2{a}
      libgdbm-dev ocaml-base-nox{a} ocaml-findlib ocaml-interp{a}
      ocaml-native-compilers ocaml-nox
    0 packages upgraded, 14 newly installed, 0 to remove and 0 not upgraded.
    Need to get 31.6 MB of archives. After unpacking 106 MB will be used.
  • mitty@precise:~$ svn co FailSafeC-trunk
    Checked out revision 2255.

fix version getter script

  • mitty@precise:~/FailSafeC-trunk$ vim tools/disthelpers/
    • tools/disthelpers/

      99while (<F>) { 
      1010# 123456 1234567890 12345678 123456789012  
      1111# A  +            -     1723 yutaka       local-packaging/debian-dir 
      12     /(^[AMDR\+ \?]{6}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; 
       12    /(^[AMDR\+ \?]{7}) ([ \-\d]{10}) ([ \-\d\?]{8}) .{12} (..*)$/ or die "cannot parse svn output: \"$_\"\n "; 
      1313    $fname = $4; 
      1414    $frev = $3 + 0; 
      1515#    print $_; 
  • mitty@precise:~/FailSafeC-trunk$ ./tools/disthelpers/
  • mitty@precise:~/FailSafeC-trunk$ ./configure
  • mitty@precise:~/FailSafeC-trunk$ make
  • mitty@precise:~/FailSafeC-trunk$ sudo make install