C で、処理にかかった時間を計る方法

以下の関数を用意して、
#include <sys/time.h>

int cputime()
{
    struct timeval tp;
    void *tzp;

    tzp = NULL;
    gettimeofday(&tp,tzp);

    return tp.tv_sec*1000 + tp.tv_usec/1000;
}
void foo {
    int starttime, endtime
    startime = cputime();

    // 処理

    endtime = cputime();

printf("CPU Time: %d ms\n", endtime - starttime);
}
とすればよい。これで、ミリ秒(ms)の値が得られる。ポイントは gettimeofday という関数を使うこと。
以下の関数を用意して、
#include <sys/time.h>

int cputime()
{
    struct timeval tp;
    void *tzp;

    tzp = NULL;
    gettimeofday(&tp,tzp);

    return tp.tv_sec*1000 + tp.tv_usec/1000;
}
void foo {
    int starttime, endtime
    startime = cputime();

    // 処理

    endtime = cputime();

printf("CPU Time: %d ms\n", endtime - starttime);
}
とすればよい。これで、ミリ秒(ms)の値が得られる。ポイントは gettimeofday という関数を使うこと。

ウェブサイト構築時のセキュリティのポイント

IPA(独立行政法人情報処理推進機構)の「安全なウェブサイトの作り方」というドキュメントは、なかなかまとまっていて、良い。すべてのウェブアプリ開発者は目を通しておくべきだ。ここではこのドキュメントから注意点をピックアップしてまとめてみた。
  1. SQL インジェクション
  2. OS コマンド・インジェクション
  3. パス名パラメータの未チェック/ディレクトリ・トラバーサル
  4. セッション・ハイジャック
  5. クロスサイト・スクリプティング
  6. クロスサイト・リクエスト・フォージェリ (CSRF)
  7. HTTP ヘッダ・インジェクション
  8. メールの第三者中継
IPA(独立行政法人情報処理推進機構)の「安全なウェブサイトの作り方」というドキュメントは、なかなかまとまっていて、良い。すべてのウェブアプリ開発者は目を通しておくべきだ。ここではこのドキュメントから注意点をピックアップしてまとめてみた。
  1. SQL インジェクション
  2. OS コマンド・インジェクション
  3. パス名パラメータの未チェック/ディレクトリ・トラバーサル
  4. セッション・ハイジャック
  5. クロスサイト・スクリプティング
  6. クロスサイト・リクエスト・フォージェリ (CSRF)
  7. HTTP ヘッダ・インジェクション
  8. メールの第三者中継

Linux で、システムのタイムゾーンを設定する方法

GUI なしの Linux でシステム自体のタイムゾーンをコンソール(コマンドライン)だけで設定するには、ルート(root)権限が必要である。以下のようにする。
GUI なしの Linux でシステム自体のタイムゾーンをコンソール(コマンドライン)だけで設定するには、ルート(root)権限が必要である。以下のようにする。

100% Pure Java のルール

ソースはここ。今なお生きる5つのルール。
  1. ネイティブメソッドを使用しないこと
  2. Java コア API 以外に外部への依存性がないこと
  3. Java インプリメンテーションのうちドキュメント化されていない部分を使用しないこと
  4. 「トンネル」メソッド (Runtime.exec、Runtime.load) を使用しないこと
  5. ハードウェア・プラットフォーム固有の定数を使用しないこと
ソースはここ。今なお生きる5つのルール。
  1. ネイティブメソッドを使用しないこと
  2. Java コア API 以外に外部への依存性がないこと
  3. Java インプリメンテーションのうちドキュメント化されていない部分を使用しないこと
  4. 「トンネル」メソッド (Runtime.exec、Runtime.load) を使用しないこと
  5. ハードウェア・プラットフォーム固有の定数を使用しないこと
Posted on 2006-10-08 by yas |