developer's diary

最近はc#のエントリが多いです

C初心者がmemcached-1.4.5を追いかける。(7)

C初心者がmemcached-1.4.5を追いかける。(6)の続き
ソースはコチラにてDLしました。

getoptで受け取ったパラメータによって処理を行っている部分を追いかける。

memcached.c(4322行目あたり)

        case 'p':
            settings.port = atoi(optarg);
            tcp_specified = true;
            break;

起動時の引数オプションにpを加えた場合の処理。

atoi関数の結果をsettings.portに返してtcp_specified をtrueに。

ちなみにsettings.portのデフォルトは11211です。
memcached.c(179行目あたり)

    settings.port = 11211;

って前の日記がテンプレみたいになってしまっている。

そうそうオプションに関しては
memcached | feedforce Engineers' blog
で分かりやすく解説されていました。

ちなみにpオプションは

オプション 説明 デフォルト値
-p ListenするTCPポート番号。 11211

だそうです。

ちなみに第1回 memcachedの基本|gihyo.jp … 技術評論社では

オプション 説明
-p 利用するTCPのポート。デフォルトは11211

なふうに解説されていました。

そしてListen(2)*1404 - エラー: 404を見て学ぶ。

listen - ソケット(socket)上の接続を待つ

listenを使用しているのはmemcached.cのソース上に4つありました。

memcached.c(3326):             if (listen(next->sfd, settings.backlog) != 0) {
memcached.c(3332):             if (listen(next->sfd, 0) != 0) {
memcached.c(3874):             if (!IS_UDP(transport) && listen(sfd, settings.backlog) == -1) {
memcached.c(3875):                 perror("listen()");
memcached.c(3991):     if (listen(sfd, settings.backlog) == -1) {
memcached.c(3992):         perror("listen()");

あぁ。↓ではmanページの翻訳が。
memcached – man page 翻訳してメモしておく » Wanatabe's Weblog - Just another WordPress weblog


続きは↓
C初心者がmemcached-1.4.5を追いかける。(8){sオプションとmオプション}

*1: (2)はシステムコールを意味するちなみに(3)は関数デス。