2007-05-01から1ヶ月間の記事一覧

Serversionコマンド

svn

チェックアウト $svn -co svn://svnserver/repository コミット $svn -ci file 新たにリポジトリに登録 $ svn add file A file $ svn ci file $ svn revert file /* 登録の取り消し */

入力の保存 fgets(), malloc()

char str[255] /* 文字列用の一時配列は十分な容量を確保すること */ char *p; while ( (fgets(str, sizeof(str), stdin) != NULL)) { /* * fgets() が読み込んだ改行を潰す */ if ( (p = strstr(str, "\n")) != NULL) { *p = '\0'; } /* * 読み込んだ文字列…

メモリ確保、開放 malloc(), free()

if ((p = malloc(sizeof(str))) == NULL) { /* mallocに限らず、必ず戻り値をチェック */ puts("Error: メモリ確保失敗\n"); return -1; } free(p); p = NULL; /* free() したら必ずNULLポインタを代入 */

制御文字を送る方法

viならCtrl-v、emacsならCtrl-qの後に送る文字を指定する。改行文字はCtrl-MもしくはCtrl-j

アウトラインモード

M-x outline-minor-mode アウトラインマイナーモード M-x hide-body 下の階層を隠す

コマンドラインオプション

C

良く忘れるのでメモ。以下の意味は同じ。 printf("%s\n", argv[0]); printf("%s\n", argv[1]); printf("\n"); printf("%s\n", *(argv+0)); printf("%s\n", *(argv+1)); $ ./test -abc ./test -abc ./test -abc

スタック

C

関数はコールされるとパラメータ、復帰データ、ローカル変数の順にスタックへpushする。従って、ローカル変数の書き換えに失敗した場合、復帰データを破壊する可能性があるので気を付ける必要がある

const修飾子

C

以下のような文字列リテラルを変更するコードは、コンパイルは通るものの実行中Segmentation faultとなる(実際は環境依存)。 char *q = "abc"; q[0] = '\0'; このバグをコンパイラに発見させるにはconst修飾子を使用する。 const char *q = "abc"; これによ…

メモリ

C

メモリは以下の4つの領域がある プログラム領域 静的記憶領域 動的記憶領域(ヒープ) スタック 以下は手元の環境での出力例 プログラム領域 -------------- printf() : 0x8048300 func() : 0x80483b8 main() : 0x8048404 静的記憶領域 -------------- 関数の…

条件付きコンパイル

C

上記のDBG_PRINTの定義には、条件付きコンパイルを使用すると良い。 #if 0 #define DBG_PRINT #endif

プリプロセッサによるデバッグ

C

以下のように定義することでデバッグのON/OFFが行える #ifdef DBG_PRINT #define DBGPRT(a) printf("%s\n", a) #else #define DBGPRT(a) #endif 以下の例の場合、DBG_PRINTのdefineの有無で2行目が変化する。 printf("str = %s\n", str); DBGPRT("Debug Mode…

2次元配列の初期化

C

以下の方法でも初期化できる int num[column_max][low_max] = { [0] = {1,2,3,-1}, [1] = {-1,-1,1}, };

タブ幅の変更方法

コマンド set-variable[RET]tab-width[RET]4 .emacs (setq tab-width 4) (setq tab-stop-list '(4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 64 68 72 76 80)) (setq indent-tabs-mode nil)

SJISを扱う方法

.emacs に以下を追加 (set-default-coding-systems 'sjis) (set-terminal-coding-system 'sjis) (set-buffer-file-coding-system 'sjis) (set-keyboard-coding-system 'sjis) ※でもfind-diredで文字化けしちゃう。

NTFSにアクセスしてWindowsのファイルを参照する方法

1. マウントポイントを作成 # mkdir /share 2. /etc/fstab に次の行を記述する。 /dev/hda2 /share ntfs defaults,uid=500 0 0 3. ntfsを読み込むカーネルモジュールをインストールする 3.1 カーネルバージョンとアーキテクチャを確認 % uname -r -p 3.2 htt…

使用しているアドオン

Tabbrowser Preferences Mouse Gestures