風で飛んでいくチラ裏

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

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)