風で飛んでいくチラ裏

気ままに雑記メモ書き殴り。古い記事は別blogからの引っ越しなのでレイアウトがアレです。

何が違うの?

C言語の種類 http://okwave.jp/qa/q6383514.html --- 素晴らしい回答はそのうちどなたかがしてくれるとして、自分用の練習。 --- 現在、主流のコンピュータは、1と0の並びによって命令やデータを解釈し、処理を行います。 人間がコンピュータに「こう動いて…

pythonをvimで書くため設定

ちょっとした事情でpythonを勉強しています。 Vimでpythonを書くための設定メモ。 Vim7.2(Windows, 香り屋様版) # 思いついたら今後も追記 $HOME/vimfiles/after/ftplugin/python.vim を作り、以下記述 ----- setlocal expandtab nnoremap <buffer> o oX<C-h> nnoremap <buffer> O</buffer></c-h></buffer>…

「ファイルを開くプログラムの選択」で表示されるプログラムの参照先を変えたい、消したい

「ファイルを開くプログラムの選択」で困ったことになったのと、それの対応をメモ。 今のところ筆者PCは正しく動作していますが、以下の内容を行う場合は自己責任でお願いします。 ■どういうときに困るか 新旧バージョンを同時に持っておきたいプログラムで…

IntelliMouse Explorer 3.0 のチャタリングを直すよ

3年とちょっと使っていたMicrosoft InteliMouse Explorer 3.0の左クリックが微妙なチャタリングを起こすようになってました。 なにが微妙かっていうと、クリックがダブルクリックになるとか、クリック中に勝手にリリースされてしまうとかもあるんだけど、 い…

printfの%n

C

#include <stdio.h> int main(void) { static const char func[] = "main"; int n; printf("function %s%n\n", func, &n); printf("n: %d\n", n); // n => 13 return 0; } \nを%nと間違えて打ったらこあだんぷしたので調べた。 そこまで出力した文字数が n に格納され</stdio.h>…

Tomcat5.5のTCPセッション保持時間って?

↓続報はこちら http://bwind.blog19.fc2.com/blog-entry-61.html いつか調べようと思ってるので、メモだけ。 サーバ側はWinXP上でTomcat5.5.27が動作。 --- ・起動する度に必ず同じソースポートでTCP通信を始めるお手製TCPクライアントの上でHTTPクライアン…

ポインタワンポインタ

C

とっさに聞かれて答えられなくて枕を涙で濡らす思いをしたので。 char (*a)[10]; char *b[10]; printf("sizeof((*a)[10]):%d, sizeof(*b[10]):%d\r\n", sizeof(a), sizeof(b)); それぞれいくつ?

VMWare Player の起動時に「回復不可能なエラー」

VMWare Player Version3.0をダウンロードし、インストール後再起動、 起動しようとすると、この画面が出る。 全然心当たりがないので、グーグル先生に聞いてみたところ、本家掲示板にヒット。 http://communities.vmware.com/thread/239217?tstart=0 シリア…

CFAQを読む-5

C

http://www.kouno.jp/home/c_faq/c5.html#0 こっから。 5.1 アドレス空間とポインタのサイズがぴったり合うようなアーキテクチャだと、ぬるぽって どう表現するんだろうなぁ…。 5.2 ポインタ計算中に出てくるリテラル0はぬるぽを表すよ。 可変引数関数だと、…

MySQL5.1系とRails2.3.5でDB生成仕様とするとSegmentation Fault

タイトル通り。RailsからMySQLにDBを生成しようとすると落ちている模様。 ググったら2件。今年の1月5日投稿の質問でレスなし。 MySQL5.1のリリースは今年の1/1、これはあやしい…。 ということで、MySQLを5.0.89にインストールし直して再実行すると、 生成で…

Railsことはじめ

http://www.rubylife.jp/rails/index.html こちらより、導入、簡単なアプリ構築まで。 ■インストール Ruby、Ruby-gems、Railsをインストール sqlite3.dll、iconv.dllをインストール PATHは適当に通す ■基本的な使用方法(コマンドライン) 1.プロジェクト作成 …

CFAQを読む-4

C

http://www.kouno.jp/home/c_faq/c4.html#0 4.2 やるよね。やるやる。ポインタ指定子は宣言時と式中では扱いが違うのよね。 4.3 *p++ は *(p++) と同義。配列アクセスするときにはよく使います。 4.5 キャストは右辺値を生み出すので、それに代入も++もでき…

CFAQを読む - 3

http://www.kouno.jp/home/c_faq/c2.html#0 間が開いたけど続き。 2.14, 2.15 うーん、使いどきがいまいち分からない。 わざわざ構造体メンバのバイトオフセットを知りたい状況か…。うーん。 2.18 この手の凡ミスだけど見つかりづらいバグは、分からない時は…

CFAQを読む - 2

C

http://www.kouno.jp/home/c_faq/c2.html#0 2.1 x1は実際に使うときも struct x1 local_x1; という使い方になる。 2.4 ------ typedef struct { int x; int y; } DATA; ------ ------ typedef DATA* P_DATA; ------ 使う側は P_DATA をモジュールから取得し…

CFAQを読む

http://www.kouno.jp/home/c_faq/ 困ったときにお世話になるFAQ。何度も見に行くけど、そのたびに違う発見が。 Cの教科書も今読み直すと違う発見があるかもなぁ。 つわけで、読んだときのメモを書き記してみよう。 1.1 > 文字データ型を(特にunsigned charを…

strlcat

C

strlcpyと同じ系。 size_t strlcpy(char *dst, char *src, size_t size) dstの末尾('\0'の位置)から、srcをくっつける。 strlen(dst) + strlen(src) > size であれば、size-1までつなげて、 末尾をヌル止めする。 sizeにはsizeof(dst)を入れるのが普通。strl…

オレオレ通信仕様

詐欺ではなく、独自プロトコルの通信仕様を考えてみましょう。的な。 かなり適当にメモ。 RFC等を漁って適当なネットワークプロトコルを1つか2つ選んで勉強したほうがよっぽどいいですね。 ・リクエスト-レスポンス方式?垂れ流し?(TCPかUDPかみたいな) ・…

配列の初期化

C

int a[10] = {0}; の意味は? 1. 配列 a の全ての要素を 0 で初期化する 2. 配列 a の最初の要素に 0 を入れる int a[10] = {1, 2, 3,}; は書き方としてOK?

strncmp

C

int strncmp(const char *s1, const char *s2, size_t len) s1とs2をlen分比較し、その結果を返す。 s1 > s2 なら正、 s1 = s2 なら0、 s1 実装依存。 大体は違いがあった文字の差が返る。 s1 = "1003"; s2 = "1000"; だと、 strncmp(s1, s2, strlen(s2)); …

strchr

C

http://0xcc.net/blog/archives/000190.html if(strchr("abcd", c)){ } ifの条件が真になるのは、cが'a', 'b', 'c', 'd', '\0'(!)のとき。 へぇー。 なんとなく\0の前までを探索するイメージがあったなぁ。 そういや、 c が、自分が欲しい文字かどうかを調べ…

getReaderとgetParamater系って一回のリクエストで同時に使えないの?

java servlet 2.4 Tomcat 5.5.28 クエリのkeyとvalueを使って応答を返すのは、まあ普通にできますわな。 HttpServletRequest#getParameterNamesを使って、keyをEnumerationで持ってきて、 それぞれにgetParameterすればいい。 で、これとは別にアクセスのロ…

strcpy, strncpy, strlcpy

C

strcpy(char *dst, const char *src) dstのサイズよりsrcのほうが大きいとdstの後ろを壊すので使わない。 strncpy(char *dst, const char *src, size_t size) size文字分コピーするので、dstのサイズを知っている場合、メモリを壊さないように書けるけど、 …

win版gvimの外部コマンドは環境変数SHELLの値を参照する?

win版gvimのはなし 他の方のvimrcとかを参考にして、色々設定いじくってるんですが、 なんか外部コマンド実行あたりでこけるなぁと思ってよく見てみたら、 C:\XXXX\cygwin\bin\bash.exe -c "<command>" ってなってました。コマンドの中に""が入ってると、上手く動かな</command>…

MPLAB IDEの起動の仕方によってカスタムビルドコマンドが失敗する?

PIC

手短に MPLAB IDEのビルドからカスタムビルドを実行する場合、これは当然、IDEの実行時のディレクトリがカレントディレクトリになってるので、直でIDE起動した場合とプロジェクトファイルから起動した場合で違いを吸収できるようにマクロを使いましょうね。…

MPLAB C18 Compilerはデフォで整数昇格してくれないよ

PIC

はじめに MPLAB C18 CompilerはマイコンのPIC18シリーズ向けのCコンパイラです。 unsigned short bit_ptn = 0x0000; int i; for(i = 0; i < 16; i++){ bit_ptn |= 1 << i; } /* このときのbit_ptnの値は?? */ ループを抜けたときのbit_ptnの値は 0xFFFF に…

ディレクトリの内容を表示したい

C

そういえばディレクトリアクセスってCだと面倒なんだろうなーとか勝手に思ってたんだけど、 便利な関数がありました。 小俣光之:コンピューターのページ(C言語講座)http://www.ncad.co.jp/~komata/c-frame.htm メニューのリンク「・ディレクトリ内容の読…

for文の中のコンマ

PIC

※PICで書いたけど普通の(?)Cでも多分同じ #define MAX 64 int i; char str[MAX]; /* strにMAXまで文字を入れる適当な処理 */ for(i = 0; i < MAX, str[i]; i++){ putchar(str[i]); } こんな文があると、for文終了の評価は (i < MAX) は実行されるが評価され…

PIC18F46J50 ECCPのコンペアマッチ・スペシャルイベントトリガでA/D変換がFire!

PIC

概要 ECCPのコンペアマッチ・スペシャルイベントトリガを使用すると、 もれなくコンペアマッチのタイミングでA/D変換開始のトリガが発行されるよ! できるだけ正確な時間カウントをしたいと思ったとき、 タイマのオーバフローを使ってもできるっちゃできるん…

(function(document){ var pres = document.getElementsByTagName("pre") for(var i=pres.length; i--; ){  var el = makeOl(pres[i]) pres[i].appendChild(el) } function makeOl(pre){ var ol = document.createElement("ol") , li = document.createElement("li") , df = document.createDocumentFragment() , br = pre.innerHTML.match(/\n/g) ol.className = "preLine" ol.setAttribute("role", "presentation") for(var i=br.length; i--; ){ var li2 = li.cloneNode(true) df.appendChild(li2) } ol.appendChild(df) return ol } })(document)