一番たくさんの村があるのはどの都道府県でしょうか?地図を見てカウントしても良いのですが、こういう面倒なことは機械にやってもらいましょう。
総務省のサイト(総務省 - 地方行政のデジタル化 - 全国地方公共団体コード)に全国の市町村の一覧があります。サイトにあるExcelファイルから、余計な列を落として都道府県名と市町村名だけにしたテキストファイル( 都道府県名ファイル、 市町村名ファイル)を用意します。
for i in `cat 20220725_prefs.txt`; do echo -n "${i} "; grep ${i} 20220725_cities.txt | grep '村$' | wc -l; done 北海道21 青森県8 岩手県4 宮城県1 秋田県3 山形県3 福島県15 茨城県2 栃木県0 群馬県8 埼玉県1 千葉県1 東京都8 神奈川県1 新潟県4 富山県1 石川県0 福井県0 山梨県6 長野県35 岐阜県2 静岡県0 愛知県2 三重県0 滋賀県0 京都府1 大阪府1 兵庫県0 奈良県12 和歌山県1 鳥取県1 島根県1 岡山県2 広島県0 山口県0 徳島県1 香川県0 愛媛県0 高知県6 福岡県2 佐賀県0 長崎県0 熊本県8 大分県1 宮崎県3 鹿児島県4 沖縄県19
正解は長野県でした。平成の市町村大合併で村は大分減りましたね。なぜか長野、北海道だけたくさんの村が残っていますけど……。
目次: C言語とlibc
Cライブラリがメモリを確保する際、内部でシステムコールを呼んでOSにメモリ確保を依頼します。現状のLinuxですとメモリ確保は2種類用意されています。1つは懐かしのbrk(), sbrk() で、もう1つはmmap() で匿名ページ(MAP_ANONYMOUS)を割り当てる方法です。
匿名ページ(MAP_ANONYMOUS)によるメモリ確保の場合、0初期化されていることが定められています。brk, sbrkが返す領域はどうでしょう?SUSv3を見ましたがbrk, sbrkの項目そのものがありません。
SUSv2を見るとLEGACY扱いではあるものの、brkの項目が(brkへのリンク)ありました。説明を見ると、
DESCRIPTION
The brk() and sbrk() functions are used to change the amount of space allocated for the calling process. The change is made by resetting the process' break value and allocating the appropriate amount of space. The amount of allocated space increases as the break value increases. The newly-allocated space is set to 0.
とのことです。0初期化は必須ですね。
自作OSもどきを作っていて、brkで確保した領域を未初期化で返していました。newlibだと動いてしまうんですが、glibcはたまに死んでしまうことがあって気づきました。実装する前に規格を見ましょう。行き当たりばったりは良くないです……はい。
< | 2022 | > | ||||
<< | < | 08 | > | >> | ||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
- | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 | - | - | - |
合計:
本日: