タグ

ブックマーク / www.fireproject.jp (6)

  • GDBによるテスト自動化への試み - ファイヤープロジェクト

    …GDBの機能を使用すると,テストを自動化できないだろうか…そんな疑問がよぎったのでちょっと試してみた. はじめに 基方針 デバッガによるテスト 自動化へ向けて コマンドファイルの作成 量産 もう一越え はじめにまず,最初にこの頁はCによる開発を前提にしていることを断っておく.テストというと,最終的には実際に出来上がったものを対象に外部使用をチェックすることになる.しかし,そこに至るまでに関数単位でのテストをボトムアップでやっておかないと,障害の切り分けが繁雑になったり,モノができあがってから「この関数に問題があるので全体の構造をかえる必要がある」なんてことがわかっても困る.ということで,この頁では関数単位のテスト,すなわち関数の呼び出しとその結果のチェックを自動化することを目指してみる. 基方針残念ながらテストの自動化といっても,全てが自動なわけではなく,テストを自動的に行なってくれ

    sankaseki
    sankaseki 2008/08/04
    GDBによるテスト自動化への試み
  • セマフォ - ファイヤープロジェクト

    共有メモリの話題に入る前の準備としてセマフォについて記述する. 同期の問題 セマフォとは セマフォを使ってみる セマフォと共有メモリ 同期の問題二つのプロセス(もしくはスレッド)A,Bが共有する変数xがあったとする.そしてA,B両者がxに1を足すとする.xが0なら処理後のxの状態が2になっていることを期待してみる. Aがx(=0)の値を読み込む. Aがx(=0)に1を足してそれをxに書き込む. Bがx(=1)の値を読み込む. Bがx(=1)に1を足してそれをxに書き込む. この時x=2. 上は「たまたま」正常なタイミングで動作した場合である.もしかしたら以下の状況なるかもしれない. Aがx(=0)の値を読み込む. Bがx(=0)の値を読み込む. Aがx(=0)に1を足してそれをxに書き込む. Bがx(=0)に1を足してそれをxに書き込む. この時x=1. 期待に反してx=1となってしまった

  • BIOとBase64 - ファイヤープロジェクト

    BIOはOpenSSLにおけるフレームワークにおける抽象データ型で,暗号化や符号化,ファイルやネットワークといった入出力の詳細をアプリケーションから隠蔽する.で,このフレームワークのもとで実装されているBase64コーデックを試してみた. BIOって何だ? base64エンコードするサンプル base64デコードするサンプル サンプルの実行 BIOって何だ?BIOはOpenSSLにおける入出力関連のフレームワークにおける抽象データ型である. BIOを使用することにより,アプリケーションでは変更不要なある「お決まりの形式」でプログラミングしつつ,容易にファイル/ネットワークとか,暗号化形式や符号化形式を切替えることができる. さらに,BIOはチェインを組むことができ,例えば暗号化して符号化してネットワークに出力するというBIOのチェイン(このチェイン自信もBIO型となる)を作成して書き出すの

    BIOとBase64 - ファイヤープロジェクト
  • C言語

    C言語をやってみよう,ふと思い立った.かなり久しぶりだ.大学当時Cは講義であった.学生時代怠けまくった結果(?)私はCよりも,趣味でやっていたJavaの方が書いたコードの行数は多い.だが,やはり「たしなみ」としてC言語はやっておかねばなるまい. 基(?)ライブラリ編 プロセス制御 シグナル パイプ IPC Pthread Socket 端末制御 curses CUnit OpenSSLを使用したCプログラミング その他 基(?)ライブラリ編とりあえず,ライブラリにある関数をいろいろ試してみる.もちろん(?)Debian環境で. ファイル操作 2003-07-20T15:13+09:00 matsu GNU/Linuxシステムでのファイル操作について.ここでは特にシステムコールを用いてファイル操作する方法について. 標準入出力ライブラリでのファイル操作 2003-07-20T15:13+

    sankaseki
    sankaseki 2008/05/14
    C言語 - OpenSSLを使用したCプログラミング
  • コマンドライン引数の取得とgetopt - ファイヤープロジェクト

    コマンドライン引数を取得する方法と,それを簡単に行なうライブラリ関数getoptについて. 引数の取得 とりあえず引数を取ってみる getopt いろんなコマンドはいろんな引数をとる. int main(int argc,char *argv[]) のargcが引数の数でargvが引数の値である.0番目の引数の値はプログラム自身の名前である. とりあえず引数を取ってみる次のプログラムは全ての引数を表示するだけのものである. includeint main(int argc,char *argv[]) { int i; for(i=0;i<argc;i++){ fprintf(stdout,”arg %d is %s\n”,i,argv[i]); } exit(0); } これを実行すると以下の感じになる. $> ./getArgs hoge fuga arg 0 is ./getArgs

    sankaseki
    sankaseki 2008/05/12
    コマンドライン引数の取得とgetopt
  • OpenSSLでRSAを試してみる - ファイヤープロジェクト

    OpenSSLにはRSAのキーペアを作成し,これを使用して暗号化,復号する機能や,キーをPEM形式で入出力する機能があるのでためしてみた. 概要 キーペアの作成 キーのダンプ出力 キーのPEM形式出力 エラーメッセージの出力 PEM形式キーファイルの読み込み 暗号化と復号 サンプルの実行 概要今回は,OpenSSLで以下の作業をする. RSAキーペアの作成 RSAは公開鍵方式なので,その公開鍵と秘密鍵を生成する. RSAキーをPEM形式で入出力 生成したRSAの公開鍵と秘密鍵をPEM形式でファイルに出力したり,PEM形式のキーデータを読み込んだりする. RSA暗号化と復号 RSAキーペアで暗号化と復号を行う. 具体的には,キーペアを作成してPEM形式出力するサンプルと,PEM形式キーファイルを読み込んでRSA暗号化,復号を行うサンプルを作成してみた. キーペアの作成では,キーペアを作成して

    sankaseki
    sankaseki 2008/05/09
    OpenSSLでRSAを試してみる
  • 1