[[プログラミング]] *参考 [#fdb9df5a] -http://real-c.info -https://kikakurui.com/x3/X3010-2003-01.html *目次 [#mc431388] #contents *下位ページ [#k8ecbec6] -このページに下位ページは存在させない。全て[[C++]]に押し付ける。 *mmap [#rd2dff65] -[[参考>http://www.atmarkit.co.jp/ait/articles/1201/18/news133.html]] -機能:ファイルとメモリの同一視(仮想メモリ技術) --読み込み専用なら,メモリから読み出しがそのままファイル読み出しに相当. --書き込み専用なら,メモリへの書き込みがそのままファイル書き込みに相当. -メリット --カーネルとコピープログラムの間でデータのコピーが発生しないので,高速. --iostreamなんて使うよりはよほど早い. *printfのバッファクリア [#k14c74e4] -printfが表示されないときに #include <stdio.h> #include <stdlib.h> int main(void) for (i = 0 ; i < 3; i++) { printf("*"); fflush(stdout); sleep(1); } } *void*のoffset [#k44c5f76] #include <stdio.h> int main(void) { void* a = (char*)0x01; a = (void*)((char*)a + 0x0F); printf("%p\n", a); } *non-blocking read [#k2b65101] -readでO_NONBLOCKよりも,selectでread可能かどうかを見る方がまとも --RDWRで開けるので,non-blockingしながらwriteもできるので -[[man select>http://www.gnu.org/software/libc/manual/html_node/Waiting-for-I_002fO.html#Waiting-for-I_002fO]] *低位関数のエラー [#p385df38] -errnoに出力される -表示の方法 --perror(問答無用で標準出力に出てしまう) --strerror(char*となるので,その後どうにかできる) *日付からUNIX TIMEを得る [#a2e06324] #include <ctime> #include <cstdio> #include <cmath> int main(void) { int y = 2015; int m = 5; struct tm t; time_t timer; timer = mktime(&t); for (int d = 3; d < 30; d++) { t.tm_year = y - 1900; t.tm_mon = m - 1; t.tm_mday = d; t.tm_hour = t.tm_min = t.tm_sec = 0; timer = mktime(&t); printf("%d %d (%ld)\n", d, (int)round((double)timer/60/60/24), timer); } } *ブラウジング [#o1887f44] -curlとlibxmlを使う. -ログイン情報は,httpクッキー情報を付記する必要がある(超面倒) *sprintfの型は非常に厳密 [#l063f779] -sprintfの型は非常に厳密で,1と1.0の違いで数字化けを起こすので要注意 *文字列検索と文字列分解 [#s7e8a174] -"1:100H2"もしくは"1:100"が入力の文字列ttargから100と2を抽出するかっこいい方法 char* s = "1:100H2"; double r0, Rh; char* colon; if((colon = strstr(s, ":")) != 0) if(strstr(colon+1, "H") != 0) sscanf(colon+1, "%lfH%lf", &r0, &RH); else sscanf(colon+1, "%lf", &r0); *数学関数の速度 [#gdda06c8] -sin, cosは四則演算20個に相当 *inline [#df982e15] -inlineは適当な深さまで展開して、きついところはそのままにする -ループアンローリングみたいなことをやってる *演算子の優先順位 [#t1a1418f] -評価順序が規定されているのは、論理演算子 (&& ||)、カンマ演算子、条件演算子だけ |