C/C+– category –
-
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 ... -
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> #...