タグ

shとCに関するraimon49のブックマーク (4)

  • コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita

    上記の表の通り,Exit Code 1, 2, 126〜165, 255 は特別な意味を持ち,スクリプトやプログラム内で exit に指定するパラメータとしては避けるべきである.とりわけ,Exit Code 127 はトラブルシューティングで混乱の元である("command not found" で終了したのか,プログラム固有のエラーなのか区別できなくなる).しかしながら,多くのスクリプトが exit 1 を一般的な実行を続行できないエラーとして使っている.Exit Code 1 は Bash の一般的なエラーを含め,とても多くのエラーで発生しうるので,デバッグの時に切り分けが大変になるだろう. Exit Code を体系立てて定義する試みはある(/usr/include/sysexits.h)が,これは C と C++ プログラマー向けである.スクリプトに関しても同様な感じにするのが適切

    コマンドラインツールを書くなら知っておきたい Bash の 予約済み Exit Code - Qiita
    raimon49
    raimon49 2016/09/21
    >ユーザ定義の Exit Code を C/C++ 標準の64〜113(もちろん成功した時は 0)に限定すべきと提案している. / カジュアルにexit(1)やっちゃってるたなぁ。
  • 様々なUNIX環境のecho.cの比較

    UNIX V5, OpenBSD, Plan 9, FreeBSD, and GNU coreutils implementations of echo.c UNIX Fifth Editionのecho.cは、以下のような実装になっている。 main(argc, argv) int argc; char *argv[]; { int i; argc--; for(i=1; i<=argc; i++) printf("%s%c", argv[i], i==argc? '\n': ' '); } いかにも昔のC言語らしいコードだ。ヘッダーの#includeはなく、関数の戻り値の型も指定されない。仮引数の型も、今となっては物珍しいだろうが後書きだ。 OpenBSDのコードは以下の通り。 /* $OpenBSD: echo.c,v 1.7 2009/10/27 23:59:21 deraadt

    raimon49
    raimon49 2013/04/11
    FreeBSDやGNU coreutils辺りから付いて行けない。
  • C言語入門、東京大学情報科学科の場合 | スラド デベロッパー

    C言語入門、書籍だろうが講議だろうが、この業界なら誰もが通る道ではあるが、 sumiiの日記経由で実に興味深いC言語入門を見付けた。 東京大学理学部情報科学科の学部2年生向けのアルゴリズムとデータ構造演習内でのC言語入門 なのだが、 C入門第1回では、シェルを実装、データを圧縮・解凍するプログラムを実装、スパムフィルタを実装というお題目が並んでいる。 これだけで一瞬ひるんでしまったが、解説PDFを見ると、 「最低でもジョブ管理、リダイレクト、(多段)パイプラインの機能は実装すること」などと書かれている。 UNIXへの理解がかなりないと難しい気がするのだが、これをくぐり抜けてくる学生はどれくらいいるのだろう?

  • 1