C/C++
相変わらずC++の文字列ポインタは分けが分からない・・・ 文字列ポインター同士を連結して別の文字列ポインタに入れるには以下のように。 #include #include int main(){ char* a = "Hi"; char* b = ", Joe"; char* c = new char[strlen(a)+strlen(b)+1]; st…
time.hをインクルードする。 #include int main(){ struct tm *date; time_t now; int year, month, day; int hour, minute, second; time(&now); date = localtime(&now); year = date->tm_year + 1900; month = date->tm_mon + 1; day = date->tm_mday; ho…
gccのオプション -v デバッグできるようにコンパイル -l インクルードパスを追加 -c オブジェクトファイルの生成 -o 実行ファイル名を指定 -Wall ワーニング全開 gcc -g -Wall helloworld.c foo.c -c gcc helloworld.o foo.o -o helloworld
-g オプション付きでコンパイルする必要があるかも・・ /usr/bin/objdump --all-headers [ファイル] | grep [関数名]
memsetが普通のやり方 char str[512]; memset(str, '\0', sizeof(str)); 一行でも記述可能 char str[512] = {0};
chown 関数 int chown(const char *path, uid_t owner, gid_t group); 所有者とグループ引数は名前でなく以下のgetpwnamとgetgrnam関数で得たIDを指定する。 struct passwd *getpwnam(const char *name); struct group *getgrnam(const char *name); 例 #inc…
GDBを使ってデバッグをしてみる。 コマンド 概要 r (run) 実行 s (step) 1ステップ実行 (関数内に入る) n (next) 1ステップ実行 (関数内に入らない) c (continue) 次のブレークポイントまで実行 p (print) [変数/関数] 変数や関数の戻り値を表示 b (break)…