タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

Programmingとlinuxとunixに関するjjzakのブックマーク (14)

  • unix のシグナル処理あれこれ - Emacs ひきこもり生活

    Linux で signal + マルチスレッド、というとハンドラであれこれしようとすると、これはもう悪夢のように大変でひとつ signal 処理用スレッドを用意するのが定石のようです。 さてはて、そんなことで FreeBSD もそういうコードを書いて fork した子供を回収してやろうとしたところ、全く動いていません… orz これはどうしたんだろう??と調べた結果 空の signal handler を signal でしこんでやると動きだすことがわかりました。 はてさて、これはカーネルにどんな実装の差があるのでしょうか? そして、他のBSDではどうなっているのでしょうか? これが今回の疑問です。 実験 ひとまずこんなコードを使って引数に 0-3 を渡して実験します。中身はこんな感じのプログラムです。 #include <stdio.h> #include <signal.h> #in

    unix のシグナル処理あれこれ - Emacs ひきこもり生活
  • Super Technique 講座~m4 チュートリアル

    m4 はUNIXの標準コマンドの1つであり、古い歴史を持つマクロプロセッサである。しかし、やや使い方が難しく、しかも古典度が高く専門的なために、どうしても紹介のプライオリティが下がる傾向があって、日語でマトモに書かれた解説にお目にかかったことがない。そこで、m4 に多少の経験値がある筆者があえて m4 のチュートリアルを書いて見せる。基的な情報は m4 の info から仕入れており、それにいろいろな実例を加えて書いている。 マクロプロセッサ m4 とは? m4 の使い方 m4 のディレクティブ マクロ定義に関するディレクティブ マクロ置換の原則 マクロ引数 undefine と include 条件分岐 ループ メタ文字の入れ換え 組み込み文字列処理関数 その他 マクロプロセッサ m4 とは? m4 はマクロプロセッサである。つまり、Cプリプロセッサ cpp (今時だと gcc -E

  • UNIXのinode番号 - 中年SEのありふれた生活

    inode番号を理解する UNIXファイルシステムで使用するシンボリックリンク(または、ソフトリンク、symlinkなど)はとっても便利なファイルです。Windowsのショートカットファイルに似ていますね。 このシンボリックリンクファイルに「出会ってよかった!」って思います。 特に、システム構築時に各ファイル、ディレクトリの配置を設計する人は、よく理解しておくことをお勧めします。 でも、その前に。。。 UNIXのファイルシステムの特徴、inode番号、ディレクトリの仕組みをざっくり理解しないと、なかなか難しいかもしれません。 ls-lの結果はinodeの情報 UNIXのファイルシステムでは、1つのファイルを、データ部分と属性部の2つから構成して管理します。 Linuxでは、この属性部のことを、inodeと呼んでいます。 このinodeもハードディスクに書き込まれています。データ以外にこのi

    UNIXのinode番号 - 中年SEのありふれた生活
  • 技術屋が作った技術屋のためのスキルアップサイト Kozupon.com

    Kozupon.com は、素晴らしいOpenSource(GPL)の普及のため日語サイトを作っています。 ■ LightTPD でWebサーバを作ろう! ■ Postgrey日語ポータル 公開中! ■ COPSセキュリティスキャナー を使って自鯖をチェックしよう! ■ コンテンツフィルタは Squirm ! ■ ウィルススキャンリダイレクタは SquidClamAV ! Kozupon.com は、Unixの技術者育成を支援します。 ■ Nature's Linux Users Group ■ TomoyoLinux ■ ペンギンの杜 秋葉原田舎料理とき 清瀬佐藤由子声楽教室 FreeSOFT開発チーム Copyright 2005-2008 Kozupon.com. SitePolicy MyNetworkPolicy Design by

  • Geekなぺーじ : Linuxネットワークプログラミング

    ここでは、Linuxを使ったネットワークプログラミングの説明を行いたいと思います。 ここで対象としている読者は、ネットワークプログラミング初心者(もしくは入門者)かつLinux環境でプログラミングを行いたい人です。 開発環境としては、C言語+gccを想定しています。 説明内容は主にソケットプログラミングになります。 なお、C言語そのものが初めての方は「C言語入門」も参考にどうぞ。Windows専用には書いてませんが主にC言語で共通の部分を解説しています。 コードを書く前の準備 まず、gccを使える状態にしないといけません。 ディストリビューションにもよりますが、Linuxを普通にインストールしただけでは開発環境は入りません。 開発環境を用意するためには、gccやglibcなどのrpmを必要に応じてインストールしてください。 次に、エディタが必要になります。 mule、emacs、xemac

  • 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ユーティリティは大きいプログラムのどの断片が再コンパイルされる必要が あるかという事と,それらを再コンパイルする発行コ

  • Universalchardet - やる気向上作戦

    universalchardet / juniversalchardet Mozillaのエンコーディング判別ライブラリであるuniversalchardetを切り出して、Cライブラリ化してみた。さらにJavaにもポーティングしてみた。エンコーディング判別なのにcharacter set detectorとはこれいかに。 C版はLinux/Windowsに対応。Linuxでのインストールは make && make install で。autoconfなどという高尚なものは使っておりません。 文字コードの変換はこちら EncodingConversion Related Works jchardet (Java,旧バージョンのchardet) juniversalchardet(Java,universalchardetのJavaポート) Universal Encoding Dete

    jjzak
    jjzak 2007/01/24
    Mozillaのエンコーディング判別ライブラリであるuniversalchardetを切り出して、Cライブラリ化してみた。
  • WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux -

    WhirlwindTutorialOnCreatingReallyTeensyElfExecutablesForLinux - 目次 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") コメント 以下の文章の日語訳です: http://www.muppetlabs.com/~breadbox/software/tiny/teensy.html gcc の info の日語は以下のページから拝借しました: http://www.asahi-net.or.jp/~wg5k-ickw/html/online/gcc-2.95.2/gcc_2.html#SEC13 Linux で動く極小 ELF 実行ファイルをつくる怒涛のチュートリアル (あるいは "Size Is Everything") She studied

    jjzak
    jjzak 2006/12/20
    Linux で動く極小 ELF 実行ファイルをつくる
  • システムコール概論

    プロセス プロセスについて考える プロセスの選択的なkillコマンド・zap システムコール 低レベル入出力 ファイル指定子 readとwrite 標準入出力と低レベル入出力 標準入出力と低レベル入出力---読みと書き 眠るシステムコール sleep 標準入出力以外のファイルのオープンとクローズ ファイルの作成とオープン ファイルを作成する。 creat システムコール ファイルのオープン---単純な形式 creat と open を使ったcopyのプログラム ファイルのオープン・オプションフラグ 前回のmycpの問題 オプションフラグでのファイルのオープン --- 様々なオープン mycp2 --- オーバーライトチェックの試作品 mycp3 --- UNIXの精神に反する親切なコピーツール オプションフラグの別の利用の仕方 C言語の復習 関数 function 制御 If-Else w

  • ひげぽん OSとか作っちゃうかMona- - 共有ライブラリお作法まとめ

    ACさんから教えていただいた Program Library HOWTO: http://www.linux.or.jp/JF/JFdocs/Program-Library-HOWTO/ 非常によくまとまっていて疑問が氷解しました。 重要そうなところを引用します。 静的ライブラリ .aは静的ライブラリ。arコマンドでオブジェクトファイルをまとめたもの。 静的ライブラリは -l オプションでリンクを行う 共有ライブラリ すべての共有ライブラリは「soname」という特別な名前をもつ。 ディレクトリ名libxxx.so.バージョン番号 バージョン番号はインターフェースが変わったときに変わる。 すべての共有ライブラリは「realname」という特別な名前を持つ。 soname.マイナー番号.リリース番号 「linker name」 sonameからバージョン番号を除いたもの ldconfig は

    ひげぽん OSとか作っちゃうかMona- - 共有ライブラリお作法まとめ
  • Make と Makefile の説明

    まだ完成途中です back 注意: このページの内容には、おそらく多くの間違いがあります。 リンクされているので残しておきますが、利用には注意してください。(2008年3月、新山) ここではおもに make の使い方 と Makefile の書き方について 説明しています。じつは make の種類にはいろいろあり、ここでは GNU make (gmake というコマンド名のこともある) を 対象にしています (BSD の pmake でも基的な部分は同じですが、 マクロ定義などは違うところもあるので注意してください)。 わかりにくい箇所とか、まちがってる箇所がある場合はメールください。 Contents make はどんなときに使うか Makefile を作る make の実行 Makefile の文法リファレンス 多段 make について (未完成) Makefile の例 (未完成)

  • patch/diff Tips

    Copyright (c) 2001 Koichi OKADA まず「取扱説明書」をお読みください。 はじめに diff/patch とは diff というのはファイルの差分を作成するツール、 patch というのはファイルの差分からファイルの変更を再現するツールです。 通常 diff で作った差分ファイルをパッチ(ばんそうこう)と呼びます。 ライセンス 多分、気にしなくて良いです。 準備 UNIX の場合 通常 UNIX には diff と patch は標準で入っています。 特に準備はいらないはずです。 Windows の場合 一番手っ取り早いのはcygwinを入れることです。 cygwin はでか過ぎるとか cygwin はちょっとって言う人は vector辺りで win32 native な rcs/diff と patch を 取って来る

  • シェルスクリプト(Bash)

    シェルスクリプトとはコマンドやシェルの組み込みコマンドなどをファイルに記述し、実行できるようにしたものである。 またプログラムの制御構造なども使用でき、柔軟な処理が可能であり、/etc/rc.d/initd/ディレクトリ内の起動スクリプトなどはシェルスクリプトである。 シェルスクリプトを実行するには実行権限および読み込み権限が必要です。 またシェルスクリプトファイルの1行目にはシェルスクリプトを実行するシェルのパスを記述します。 スクリプトファイル内でも、シェル変数を定義することができる。またその変数を参照する場合は変数名の前に" $ "を 付けることで参照できる。変数名に使用できる文字は英数字および" _ "(アンダーバー)であり先頭は英字を使用しなくてはならない。

  • PC覚え書き | プログラムのデーモン化

    VvZX(qvZX)Afork()VXeR[gpBVXeR[oAovZXmAvZXRs[B ovZXevZXARs[VvZXqvZXBevZXAqvZXfork()lpB evZXAfork()qvZXvZXIDpAqvZX0pBplAevZXqvZXッBlBAqvZXPvOヲB int main(void){ pid_t child // fork()li[ if( !(child=fork()) ){ // child=0qvZX printf("inchildprocess\n"); exit(0); } // evZXqvZXID\ヲ prinft("inparentprocess:childprocessID=%d\n,child); return 0; }

  • 1