TVアニメ『すのはら荘の管理人さん』本編PV第2弾
アニメ『すのはら荘の管理人さん』(2018)
いまいち楽しみ方がわからないアニメ。
ほのぼのすれば良いのだろうけど、主人公が女の子のような男の子である必要性とか、管理人さんはタイトルになってるけど、なんだか他のキャラと同列のような、と気になりはじめ、原作読んでみることになりました。
原作は4コマ漫画ですが、アニメと同じ内容なのだけど、漫画の方が断然面白いです。
何がって、絵が止まってるところ。アニメは初見だと、キャラを把握してないのにどんどん話が進みますが、漫画ではキャラの紹介シーンで、ずっと止まって眺めてられます。
まあ漫画を読んでから、アニメを見るって楽しみ方も良いと思います。
今回は、管理ということでpsコマンドやります。
psコマンドは、-ハイフンありオプションと、ハイフンなしオプションが混在していて、かつオプションが大量にあります。どのようなオプション解析のソースになっているか気になります。
ということでpsコマンドのソースを確認します。
psのパスを確認。
takk@deb9:~/src$ which ps /bin/ps takk@deb9:~/src$
パスからapt-file search。apt-file searchで指定するパスに正規表現が使えないので、grepをつかって絞り込みします。
takk@deb9:~/src$ apt-file search /bin/ps | grep ps$ ghostscript: /usr/bin/ps2ps procps: /bin/ps ps2eps: /usr/bin/ps2eps psutils: /usr/bin/pstops takk@deb9:~/src$
/bin/psに該当するのは、procpsですね。
パッケージが分かったので、ソース取得します。
takk@deb9:~/src$ apt-get source procps 省略 takk@deb9:~/src$
ダウンロードしたパッケージのディレクトリを確認。
takk@deb9:~/src$ cd procps-3.3.12/ takk@deb9:~/src/procps-3.3.12$ ls ABOUT-NLS config.rpath m4 ps tload.1 AUTHORS config.sub man-po pwdx.1 tload.c COPYING configure misc pwdx.c top COPYING.LIB configure.ac missing skill.1 uptime.1 ChangeLog contrib mkinstalldirs skill.c uptime.c Documentation debian pgrep.1 slabtop.1 vmstat.8 Makefile.am depcomp pgrep.c slabtop.c vmstat.c Makefile.in free.1 pidof.1 snice.1 w.1 NEWS free.c pidof.c sysctl.8 w.c aclocal.m4 include pkill.1 sysctl.c watch.1 autogen.sh install-sh pmap.1 sysctl.conf watch.c compile kill.1 pmap.c sysctl.conf.5 config.guess lib po test-driver config.h.in ltmain.sh proc testsuite takk@deb9:~/src/procps-3.3.12$
さっそくgrep。caseの’a’オプションを検索。
takk@deb9:~/src/procps-3.3.12$ grep -r 'case.*a.:' * contrib/minimal.c: case 'a': contrib/utmp.c: case 'a': pgrep.c: case 'a': pmap.c: case 'a': /* Sun prints anon/swap reservations */ proc/readproc.c: case_VmSwap: // Linux 2.6.34 proc/readproc.c: case_VmPeak: // 2005, peak VmSize unless VmSize is bigger ps/parser.c: case 'a': ps/parser.c: case 'a': ps/parser.c: case_format: ps/global.c: case_debian: /* Toss this? They don't seem to care much. */ ps/global.c: case_compaq: ps/global.c: case_digital: ps/sortformat.c: case SF_B_o: case SF_G_format: case SF_U_o: /*** format ***/ slabtop.c: case 'a': sysctl.c: case 'a': /* string and integer values (for Linux, all of them) */ top/top.c: case 'a': top/top.c: case 'a': // 3.2.8 (former procps) top/top.c: case 'a': // we don't carry 'a' / 'w' in our top/top.c: case 'a': top/top.c: case 'a': vmstat.c: case 'a': takk@deb9:~/src/procps-3.3.12$
psコマンドのオプション解析してそうなファイルとしては、ps/parser.cが怪しいので、
ps/parser.c内の、case ‘オプション’:を確認。
takk@deb9:~/src/procps-3.3.12$ grep "case.*'.':" ps/parser.c case ' ': case ',': case '\t': case '\0': case 'A': case 'C': /* end */ case 'F': /* DYNIX/ptx -f plus sz,rss,psr=ENG between c and stime */ case 'G': /* end */ case 'H': /* another nice HP/UX feature */ case 'J': // specify list of job IDs in hex (IRIX) -- like HP "-R" maybe? case 'L': /* */ case 'M': // typically the SELinux context case 'N': case 'O': /* end */ case 'P': /* SunOS 5 "psr" or unknown HP/UX feature */ case 'R': // unknown HP/UX feature, like IRIX "-J" maybe? case 'T': case 'U': /* end */ case 'V': /* single */ case 'Z': /* full Mandatory Access Control level info */ case 'a': case 'c': case 'd': case 'e': case 'f': case 'g': /* end */ case 'j': case 'l': case 'm': case 'o': /* end */ case 'p': /* end */ case 'q': /* end */ case 'r': case 's': /* end */ case 't': /* end */ case 'u': /* end */ case 'w': case 'x': /* behind personality until "ps -ax" habit is uncommon */ case 'y': /* Sun's -l hack (also: Irix "lnode" resource control info) */ case 'z': /* alias of Mandatory Access Control level info */ case 'z': /* select by zone */ case '-': case '0' ... '9': /* end */ case 'A': case 'C': case 'H': // The FreeBSD way (NetBSD:s OpenBSD:k FreeBSD:H -- NIH???) case 'L': /* single */ case 'M': // undocumented for now: these are proliferating! case 'O': /* end */ case 'S': case 'T': case 'U': /* end */ case 'V': /* single */ case 'W': case 'X': case 'Z': /* FreeBSD does MAC like SGI's Irix does it */ case 'a': case 'c': // case 'd': case 'e': case 'f': case 'g': case 'h': case 'j': case 'k': case 'l': case 'm': case 'n': case 'o': /* end */ case 'p': /* end */ case 'q': /* end */ case 'r': case 's': case 't': /* end */ case 'u': case 'v': case 'w': case 'x': case '-': case '=': case ':': case '-': err = parse_pid(++data, grpnode->u + grpnode->n++); break; case '+': err = parse_pid(++data, sidnode->u + sidnode->n++); break; takk@deb9:~/src/procps-3.3.12$
ものすごいたくさんヒットしました。
つづく
コメント