- 追加された行はこの色です。
- 削除された行はこの色です。
*下位ページ [#k8ecbec6]
-[[libxml]]
-[[curl]]
-[[SQLite]]
-[[InputSubsystem]]
-[[高速化]]
-[[デバイスドライバ]]
*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クッキー情報を付記する必要がある(超面倒)
*printf, sprintfの型 [#l063f779]
-sprintfの型は非常に厳密で,1と1.0の違いで数字化けを起こすので要注意