タグ

GNUに関するuokadaのブックマーク (7)

  • tailコマンドの実装を見る。 - Shohei Yoshida's Diary

    tailって真面目に作るとどうなるんだろうということが気になったので、 ソースコードを読んでみます。ソースは NetBSD 5.0.2です。 場所は usr/src/usr.bin/tailになります。tail -fとかは考えずに 普通にファイルの終わり n行を表示する場合についてのみ考えます。 実装を見ていきます。NetBSDのユーザランドがビルドできる環境で 見るといいかと思います。Macだとビルドできました。bsdmakeを使って ください。FreeBSDでは警告でエラーとなるので(Werrorのせい) makeを使わず gccでファイルを指定してコンパイルすればいいかと思います。 Ubuntuではそのままではビルドできません。 まずは main関数からということで、tail.cです。 はじめはオプション解析なので全部無視。ついでオプションにより 立ったフラグに関する処理ですが、そん

    tailコマンドの実装を見る。 - Shohei Yoshida's Diary
  • GNU make での条件コンパイル - IKB: 雑記帳

    twitter に垂れ流したものは流れさってしまって残らないので、拾ってまとめなおしておく。 GNU make では条件文が書ける。 たとえば変数 COND が true に設定されていたら、ソースファイルをまとめる文字列 SRCS に hoge.c を追加する、といったことを次のように書いておける。 ifeq ($(COND), true) SRCS += hoge.c endif ただ、 ifeq でテストできる条件はただひとつなので、複数の条件を確認したいときにはちょっとした工夫をしないといけない。 複数の条件の論理和をとる findstring を使って、条件変数をならべた文字列のなかに true があることを見つけることで論理和をとれる。 たとえば以下のように書けば、条件変数 A か B、 C のいずれかが true であることを検出できる。 ifeq ($(findstring

    GNU make での条件コンパイル - IKB: 雑記帳
  • Iptablesチュートリアル 1.2.2

    Japanese translation v.1.0.1 Copyright © 2001-2006 Oskar Andreasson Copyright © 2005-2008 Tatsuya Nonogaki この文書を、フリーソフトウェア財団発行の GNU フリー文書利用許諾契約書バージョン1.1 が定める条件の下で複製、頒布、あるいは改変することを許可する。序文とその副章は変更不可部分であり、「Original Author: Oskar Andreasson」は表カバーテキスト、裏カバーテキストは指定しない。この利用許諾契約書の複製物は「GNU フリー文書利用許諾契約書」という章に含まれている。 このチュートリアルに含まれるすべてのスクリプトはフリーソフトウェアです。あなたはこれを、フリーソフトウェア財団によって発行された GNU 一般公衆利用許諾契約書バージョン2の定める条件の

  • GNU make 日本語訳(Coop編) - 目次

    著者 :リチャード・M・ストールマン, ローランド・マグラス (GNU プロジェクト) 訳者 : いのまた みつひろ / ecoop.net(技術メモ公開中) 翻訳文更新日:May 20, 2002(翻訳終了・未校正) Linux 標準搭載の make コマンド, 別名 gmake の日語版です。 この資料の著作権は Richard.M.Stallman & Roland.McGrath と Free Software Foundation にあり、また翻訳版には前述の著作者に加えて ecoop.net に著作権があります。再配布・転載等される方はこちらを見て下さい。 GNU Project についてはgnu.org(日語)を参照のこと。 序文はこちら GNU makeユーティリティは大きいプログラムのどの断片が再コンパイルされる必要が あるかという事と,それらを再コンパイルする発行コ

  • Guido van Robot

    Welcome to the home of Guido van Robot! Guido van Robot, or GvR for short, is a programming language and free software application designed to introduce beginners to the fundamentals of programming. GvR runs on Windows, Macintosh, and GNU/Linux, in a variety of languages! It's great in both the classroom and the home as a way of introducing people to the basic concepts of programming. Are you inte

  • 知っていると便利な gcc のオプション

    back GNU gcc を使う際に知っていると便利なオプションを挙げておきます。 注意: これが全部ではありません。gcc には、ほかにも プロセッサ依存の細かいオプションが山のようにありますが、それらは ふつうあまり利用しないので省略しました。 一般的なオプション -c, -o, -I, -g, -O, -L, -l 省略。それくらい知ってること。ちなみに -L と -l は ld へのオプションであり、順番が重要である。 -pipe 各ステージ間で情報のやりとりをするのに temporary file を使わず、 pipe を使うようにする。このオプションが Makefile などに 含まれているときは、たいてい除いたほうがよい。なぜなら、 多くのシステムでは、アセンブラ側がパイプに対応してないから。 言語仕様に関するオプション -ansi 厳格な ANSI 仕様でコンパイルする。こ

  • コンパイラ(gccコマンド)の使い方

    gccはジーシーシーと読む.GNUが作成し,UNIX,Windowsなどで動作するフリー のコンパイラである. ここでは,C言語をコンパイルする際のgccの利用方法を説明するが,C++の場合 にはgccというところをg++に変更すればほぼそのまま利用可能である. イタリック体は,実行時には適当に変えること.ここでは,サンプルとし て,test.cをコンパイルしてtest.o(オブジェクトファイル)または test(実行ファイル)を作成する場合についての説明をする. 主なオプション一覧 -g   (コンパイル,リンク時) コンパイル,リンク時にDEBUG情報を付加する.dbx,gdbなどのデバッガ を使用するときに必要. -c   (コンパイル時) コンパイルのみ行う(オブジェクトファイルを生成する). ex: gcc -c test.c   → test.oを生成 -o test.o  (

  • 1