Linux– category –
-
コードの処理速度計測にgprofを試してみた
GNUのプロファイラ gprofでコードの処理速度計測を試してみた。関数単位、LINE(行)単位での実行速度の計測ができる模様。 今回は関数単位でお試し。 使い方は"-pg"のオプションを付与してコンパイルしたバイナリを実行後にgprofコマンドをかませばOK。 gpr... -
linuxでkbhit()
LinuxでWindowsのkbhit()相当を実装する。 kbhit.h #ifndef _KBHIT_H_ #define _KBHIT_H_ #include <stdbool.h> #include <termios.h> #include <unistd.h> extern void KB_open(void); extern void KB_close(void); extern bool kbhit(void); ex... -
C言語でbuffer overrun
お呼びでない関数を実行する。 overrun.c #include <stdio.h> #include <stdlib.h> void goast(void) { printf("Boo!\n"); } void dummy(void) { char a[1] = {0}; a[9] = &goast; } int main(void) { dummy(); return 0; } 実行例 $ gcc overrun.c ... -
gnuplotで正規分布を表示
gnuplotで正規分布のグラフをterminal上に表示する。環境はLinux(CentOS 6) [手順] perlで正規分布に従う乱数のリストをファイルに出力gnuplotでterminalにグラフ出力 事前準備(perl, gnulpotのinstall) $ sudo yum -y install gnuplot $ sudo yum -y inst... -
find, sedで一括置換
カレントディレクトリ配下で検索したファイルについて内容を指定条件に従い置換する。 実行例 $ find . -name "<search conditions>"|xargs sed -e s/'<before>'/'<after>'/g -i -
errno一覧
Linuxでerrno一覧 #include <stdio.h> #include <string.h> #include <errno.h> int main(void) { for(int i = 0; i <= EHWPOISON; i++) { char str[64] = {0}; strerror_r(i, str, sizeof(str)); printf("%d:%s\n", i, str); } return 0; } ... -
C言語で簡易メモリ管理
Linux Kernelのリスト構造を参考に作成。 環境:CentOS 6, gcc version 4.4.7 mempool.h #ifndef _MEMPOOL_H_ #define _MEMPOOL_H_ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <stdint.h> #...