タグ

execとシェルに関するakaneharaのブックマーク (2)

  • fork/execモデルの起源 - Plan9日記

    UNIXを勉強すると、forkとexecが分離されていることに疑問を持ち、パイプやリダイレクトを使ってシェルを作り、その合理性に感動するというのが、お決まりのパターンになっているが、なぜこんな実装が生まれてきたのだろう。 WindowsのネイティブAPIであるNtCreateProcessや、その祖先とも言える*1VMSのsys$creprcは、意味的にはforkとexecが一体化されている。まぁ、こっちの方がプロセス生成という意味では自然なアプローチに感じられるが、sys$creprcの山のような引数を見ると、これを使ってプログラムを書く気は萎えてくる。input、output、errorって標準入出力のバインディングを変えるためだろうか。そうだとすると、UNIXモデルの方がシンプルで理に適っている。 fork、execはUNIX V1のころから存在するのだが、「The Evolutio

    fork/execモデルの起源 - Plan9日記
  • flockコマンドをflock関数みたいに使う - 揮発性のメモ2

    flock(1)をflock(2)みたいに使いたい Stray Penguin - Linux Memo (BASH) ここに書いてあるとおりに実施する 関数定義 # ロック (ロックファイル名) filelock () { exec 9>>$1 flock -x 9 } # アンロック fileunlock () { exec 9>&- } 使い方 echo "HEAVEN OR HELL" filelock /tmp/hoge echo "LET'S LOCK" sleep 10 echo "SLASH" fileunlock exec 9>>$1 http://chaichan.web.infoseek.co.jp/src/BSH.htm#B13 を読む execによるリダイレクトで番号を自動で割り振る ファイルディスクリプタ 9番 を、引数(/tmp/hoge)への追記としてオー

    flockコマンドをflock関数みたいに使う - 揮発性のメモ2
  • 1