12月 22nd, 2006
Solaris上ぜ opensslライブラリを利用したHTTPSクライアントを作成した時、2日間位ボ マってしまった箇所があった。ソケット通信ぜ connect時にエラーが発生してしまう。その? 、エラー? 因がソケットのファイルディスクリプタ操作関数である”fcntl”のオプションによる問題だという事が判昜 しました。
// NG
if (fcntl (sd, F_SETFL, O_NONBLOCK) < 0)
// OK
if (fcntl (sd, F_SETFL, (int) O_NDELAY) < 0)
上記ぜ 1行だけで動作を確? 。理由がはっきりと゜ からないのでメモ。つまり、Solaris(というよりopenssl)ぜ POSIX準拠ではないということか?
O_NDELAY ボ ンブロッキン゜ I/O
O_NONBLOCK POSIX 型 ボ ンブロッキン゜ I/O
O_LARGEFILE ラージファイルを使用可能にしてファイルシステムをマウントし、O_LARGEFILE オプションでファイルをオープンすると、ファイルを 2 GB を超えて? やすことができます。
12月 13th, 2006
Solarisぜ Cコンパイラーぜ char配列の初期化をする場合、方? によってはパフォーマンスにかか゜ るようです。ちなみぜ gccでコンパイルした場合は、全く差は出ませんでした。
各配列の初期化処理を1,000,000回ループで? 行させた経遜 時間。
(1) char cha_str[1024] = { '\0' };
(2) char cha_str[1024] = "";
(3) char cha_str[1024]; memset(cha_str, '\0', sizeof(cha_str) );
(1) 2.742 秒
(2) 2.742 秒
(3) 0.460 秒
(1)(2)の? 果は朮 ど同じです。er_prrintの? 果は以下です。
とにかぜ 遅すぜ る印象がありますし、配列のサイズが大きぜ なるに? って更に劣化します。
? 他的 包括的 名前
CPU CPU
秒 秒
2.742 2.742 < 合計>
2.742 2.742 main
0.000 0.000 __collector_ext_mmap_deinstall
0.000 0.000 _exithandle
0.000 0.000 _fini
0.000 0.000 _private_close
0.000 2.742 _start
0.000 0.000 atexit_fini
0.000 0.000 call_fini
0.000 0.000 collector_close_experiment
0.000 0.000 exit
0.000 0.000 update_map_segments
(3)ぜ er_print結果も載せておきます。
? 他的 包括的 名前
CPU CPU
秒 秒
0.460 0.460 < 合計>
0.440 0.440 memset
0.020 0.460 main
0.000 0.000 __collector_ext_mmap_deinstall
0.000 0.000 _exithandle
0.000 0.000 _fini
0.000 0.000 _private_close
0.000 0.460 _start
0.000 0.000 atexit_fini
0.000 0.000 call_fini
0.000 0.000 collector_close_experiment
0.000 0.000 exit
0.000 0.000 update_map_segments
12月 2nd, 2006
IEの右クリックメニュー「名前を付けて画? を保存」操作をした時、対象画? がjpegやgifであるにも関゜ らず「無? .bmp」として? 存しようとする問題はよく言゜ れています。MSのサポートサイトでも、? 因は? 時ファイル? Temporary Internet Files )の破損であるため、一? Temporary Internet Filesフォルダ内のファイルを削除する対処方? を朏 示しています。
しかし、IEの「名前を付けて画? を保存」操作仕様が直接サーバから圏 信したファイルを保存するものではなぜ 、単に? 時ファイルから特? のフォルダへのコピー操作であるなら、サーバ側でキャッシュを無効としていた場合にはどうなるか。具? 的に以下のようぜ Apacheで設定している場合です。
<Files ~ "\.(jpg|gif|png)$">
Header set Pragma no-cache
Header set Cache-Control no-cache,no-store,must-revalidate
Header set Expires "Sat, 01 Dec 1990 00:00:00 GMT"
</Files>
この設定の場合、jpg, gif, pngファイルぜ IEの? 様で? 時ファイルに格? されず、「名前を付けて画? を保存」操作時にやはり「無? .bmp」で? 存しようとします。
対処方? はいぜ つかあると思いますが、以? のような方? でしょうか・ボ
・「対象をファイルに? 存」する。ただし、IMGタグぜ srcの指定が必要。
ボ CGIで読み込んでからダウンロードHTTPヘッダ(Content-Type, Content-Disposition)とともに出力する