にたまごほうれん草アーカイブ

はてなダイアリーで書いてた「にたまごほうれん草」という日記のアーカイブです。現在は「にたまごほうれん草ブログ」を運営中です。

C

stat関数とstat構造体

C

stat関数は、ファイルやディレクトリについての情報を返す。 デバイスとかを触るには知っておかないといけませんね。 Manpage of STAT といっても、stat()で得られるstat構造体は、中身を見てみないと何かよくわかりません。 (manを読めば何の意味を持つの…

文字列の扱いについて勘違い

今日、とあるコードを読んでいて、以下のような式を見た。 const char *str = NULL; str = "hoge hoge"; あれ、こんな代入ってできるんだっけ?と思ったが、以下のダメなコードと勘違いしていたようです。 char str[10]; str = "hoge hoge"; 前者は、char型…

Cでもフィボナッチを書いてみる

Scheme演習第2回-問1と続・Scheme演習第2回-問1で、schemeで再帰と末尾再帰を用いてフィボナッチ数列を解いてみたが、練習のためにCでも書いてみた。(すぐできるか試してみたかった) 今回は計算結果を出力するのはおいといて、いきなり時間のみを計測。 #i…

よさげなHTTPライブラリ - libcurl

C Web

cURL and libcurl 諸事情によりHTTPのフリーなライブラリを探していて見つけたので使ってみる。 インストール まず、ここからcurl-7.18.1.tar.gzをダウンロード。 展開してできたディレクトリの中に移動したあと、configureする。 HTTP(S)だけ使用できればよ…

デバッグしてたら夜更かしに

仕事で使うからとCでpthread使ったプログラムをデバッグしてたらすっかりこんな時間に。 マルチスレッドプログラムのよいデバッグ方法を模索することが課題。 家だからってprintfデバッグでなんとかなるやと思うのは間違いってことか。 ぐぐってみたら出てき…

EOFを入力する

C

いつの間にか失くしていたK&Rを再購入して読んでいたら、「getchar() != EOF」の結果を確認しろという課題があった。 元々のコードは以下の通りだが、普通にアルファベットや数字を入力しているだけではEOFとならず、ループしてしまう。 調べたところ、Windo…

まとめてインデント

freebsdグループ - くれすのFreeBSD日記 - まとめてインデント あるかな、と思って探したらあって助かった。

Emacsのc-mode設定

環境が変わるごとにいちいち設定するのが面倒なので、(.emacsをちゃんと設定して使いまわせという話は置いといて)c-modeの設定のみメモ。 いつもGoogleで探してたら十分なのがここにあったので拝借。 ;; c-mode (setq c-default-style "k&r") ;; BackSpace…

で、#や##がいっぱい

上で「あるライブラリ」なんてぼかして書きましたが、DirectFBの中にはこれを使った定義がいっぱい。探すのが激しくしちめんどくさいです。

#と##演算子

http://wisdom.sakura.ne.jp/programming/c/c42.html あるライブラリのソースコードを読んでいて頭に「?」が出てきた表現。 なんとなく見れば雰囲気が分かるけれど、正しい解説を今まで知らなかったのでメモ。 この演算子の嫌なところは検索エンジンで「#」…

iconvにやられる

Cで日本語の文字コード変換を使ったプログラムを書いていたら、見事にハマってしまいました。 肝心の変換作業はiconvにおまかせだったのですが、iconvの引数にするためにずっとchar型で文字列を弄っていたら、UCS2に変換した後は半角文字でも全て2バイトにさ…

メモリリーク検出

mallocとかの mpatrol ccmallocOpenSSLについては、 http://soft3304.net/04WebServer/TechInfo.html https://www.codeblog.org/blog/kiyoshi/20060127.html

socket

C

getaddrinfo socket connect fcntlで非ブロッキング(ioctlでも可)read, write send, recv

mutex

pthread_mutex_lock pthread_mutex_unlock

状態変数

pthread_cond_wait pthread_cond_timedwait pthread_cond_signal