{"id":56767,"date":"2018-01-29T08:22:39","date_gmt":"2018-01-28T23:22:39","guid":{"rendered":"http:\/\/www.softantenna.com\/wp\/?p=56767"},"modified":"2018-01-29T08:22:39","modified_gmt":"2018-01-28T23:22:39","slug":"macos-high-sierra-freeze-17-line-c-program","status":"publish","type":"post","link":"https:\/\/softantenna.com\/blog\/macos-high-sierra-freeze-17-line-c-program\/","title":{"rendered":"macOS High Sierra\u3092\u30d5\u30ea\u30fc\u30ba\u3055\u305b\u308b17\u884c\u306eC\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u307f\u3064\u304b\u308b - htop\u30d5\u30ea\u30fc\u30ba\u306b\u3082\u95a2\u4fc2\u304b"},"content":{"rendered":"<p><img decoding=\"async\" style=\"display:block; margin-left:auto; margin-right:auto;\" src=\"https:\/\/softantenna.com\/blog\/wp-content\/uploads\/2018\/01\/Ifreeze.jpg\" alt=\"Freeze\" title=\"freeze.jpg\" border=\"0\" width=\"924\" height=\"548\" \/><\/p>\n<p>macOS High Sierra\u3092\u30d5\u30ea\u30fc\u30ba\u3055\u305b\u308b\u308f\u305a\u304b17\u884c\u306eC\u30d7\u30ed\u30b0\u30e9\u30e0\u304c<a href=\"https:\/\/jvns.ca\/blog\/2018\/01\/28\/mac-freeze\/\">\u767a\u898b<\/a>\u3055\u308c\u8a71\u984c\u3068\u306a\u3063\u3066\u3044\u307e\u3059(<a href=\"https:\/\/news.ycombinator.com\/item?id=16250677\">Hacker News<\/a>)\u3002<\/p>\n<p>\u4e0d\u5177\u5408\u3092\u767a\u898b\u3057\u305fJulia Evans\u6c0f\u306f\u3001\u81ea\u8eab\u304c\u958b\u767a\u3059\u308bRuby\u306e\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30d5\u30a1\u30a4\u30e9\u300crbspy\u300d\u306e\u30b5\u30dd\u30fc\u30c8\u4e2d\u306bMac\u304c\u30d5\u30ea\u30fc\u30ba\u3059\u308b\u73fe\u8c61\u306b\u906d\u9047\u3057\u305f\u3068\u306e\u3053\u3068\u3002\u5f53\u521d\u30e1\u30e2\u30ea\u304c\u5927\u91cf\u306b\u5272\u308a\u5f53\u3066\u3089\u308c\u305f\u305f\u3081\u3060\u3068\u8003\u3048\u3066\u3044\u305f\u3088\u3046\u3067\u3059\u304c\u3001\u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u5206\u6790\u3057\u3066\u3044\u3063\u305f\u7d50\u679c\u3001task_for_pid\u3068\u3044\u3046\u540d\u524d\u306eMach\u95a2\u6570\u306e\u547c\u3073\u51fa\u3057\u306b\u539f\u56e0\u304c\u3042\u308b\u3053\u3068\u3092\u3064\u304d\u3068\u3081\u307e\u3059\u3002<\/p>\n<p>\u6700\u7d42\u7684\u306b\u306f\u4ee5\u4e0b\u306e17\u884c\u306eC\u30d7\u30ed\u30b0\u30e9\u30e0\u306b\u3088\u3063\u3066\u30d5\u30ea\u30fc\u30ba\u304c\u767a\u751f\u3059\u308b\u3053\u3068\u304c\u793a\u3055\u308c\u3066\u3044\u307e\u3059\u3002<\/p>\n<pre><code class=\"c\">#include <mach\/mach_init.h>\n#include <mach\/port.h>\n#include <sys\/wait.h>\n#include <unistd.h>\n#include <stdio.h>\n\nint main() {\n    for (;;) {\n        pid_t pid = fork();\n        if (pid == 0) execv(\"\/usr\/bin\/true\", NULL); \n        mach_port_name_t task = MACH_PORT_NULL;\n        task_for_pid(mach_task_self(), pid, &task);\n        printf(\"Ran task_for_pid\\n\");\n        int wait_status;\n        wait(&wait_status);\n    }\n}<\/code><\/pre>\n<p>\u4e0a\u8a18\u30d7\u30ed\u30b0\u30e9\u30e0\u30b3\u30f3\u30d1\u30a4\u30eb\u3057\u3066<code>.\/freeze-mac<\/code>\u3068\u3057\u3066\u5b9f\u884c\u3059\u308b\u3068\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u30d5\u30ea\u30fc\u30ba\u3057\u3001\u30bf\u30fc\u30df\u30ca\u30eb\u306e\u4ed6\u306e\u30bf\u30d6\u3067ps\u3092\u5b9f\u884c\u3059\u308b\u3068\u3053\u3061\u3089\u3082\u30cf\u30f3\u30b0\u3002ps\u3092Ctrl+C\u3067\u6b62\u3081\u308b\u3053\u3068\u3082\u3067\u304d\u306a\u3044\u3088\u3046\u3067\u3059\u3002<\/p>\n<p>exec\u306e\u3042\u3068\u5373\u6642\u306btask_for_pid\u3092\u547c\u3073\u51fa\u3059\u3053\u3068\u304c\u539f\u56e0\u306e\u3088\u3046\u3067\u3001task_for_pid\u306e\u547c\u3073\u51fa\u3057\u3092\u6570\u30df\u30ea\u79d2\u9045\u3089\u305b\u308b\u3060\u3051\u3067\u3001\u30d5\u30ea\u30fc\u30ba\u3092\u56de\u907f\u3067\u304d\u308b\u3068\u306e\u3053\u3068\u3002<\/p>\n<p>\u74b0\u5883\u304c\u6574\u3063\u3066\u3044\u308b\u65b9\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u3057\u3066\u8a66\u3057\u3066\u307f\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n<pre>wget https:\/\/gist.githubusercontent.com\/jvns\/16c1ea69352a81658d6d8e9c5a289f2a\/raw\/ea11fa0a16bfcd4fd019666b790c6c8fe624f9f0\/freeze-mac.c\ncc -o freeze-mac freeze-mac.c\n.\/freeze-mac\n# try running `ps` \/ starting Activity Monitor, they don't work!<\/pre>\n<p>macOS High Sierra\u3067\u74b0\u5883\u3067\u5b9f\u884c\u3059\u308b\u3068\u30d5\u30ea\u30fc\u30ba\u3059\u308b\u5371\u967a\u6027\u304c\u3042\u308b\u306e\u3067\u3054\u6ce8\u610f\u304f\u3060\u3055\u3044\u3002\u30d6\u30ed\u30b0\u306e\u8a18\u4e8b\u306b\u306fCtrl-C\u3067<code>.\/freeze-mac<\/code>\u3092\u6b62\u3081\u308b\u3068\u5143\u306b\u623b\u308b\u3068\u3042\u308a\u307e\u3059\u304c\u3001\u624b\u5143\u306e\u74b0\u5883(macOS High Sierra 10.13.3)\u3067\u306f\u5f37\u5236\u96fb\u6e90\u30aa\u30d5\u3057\u306a\u3044\u3068\u5fa9\u6d3b\u3057\u307e\u305b\u3093\u3067\u3057\u305f\u3002<\/p>\n<p>\u306a\u304a\u3053\u306e\u4e0d\u5177\u5408\u306f<a href=\"https:\/\/github.com\/hishamhm\/htop\/issues\/682\">htop<\/a>\u3092macOS High Sierra\u3067\u52d5\u304b\u3059\u3068\u30d5\u30ea\u30fc\u30ba\u3059\u308b\u4e0d\u5177\u5408\u306b\u3082\u95a2\u4fc2\u3057\u3066\u3044\u308b\u306e\u3067\u306f\u306a\u3044\u304b\u3068\u8003\u3048\u3089\u308c\u3066\u3044\u3066\u3001macOS\u5074\u306e\u65e9\u6025\u306a\u5bfe\u7b56\u304c\u671b\u307e\u308c\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>macOS High Sierra\u3092\u30d5\u30ea\u30fc\u30ba\u3055\u305b\u308b\u308f\u305a\u304b17\u884c\u306eC\u30d7\u30ed\u30b0\u30e9\u30e0\u304c\u767a\u898b\u3055\u308c\u8a71\u984c\u3068\u306a\u3063\u3066\u3044\u307e\u3059(Hacker News)\u3002 \u4e0d\u5177\u5408\u3092\u767a\u898b\u3057\u305fJulia Evans\u6c0f\u306f\u3001\u81ea\u8eab\u304c\u958b\u767a\u3059\u308bRuby\u306e\u30b5\u30f3\u30d7\u30eb\u30d7\u30ed\u30d5\u30a1\u30a4 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":56768,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[4],"tags":[3299,3480],"class_list":["post-56767","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-mac","tag-mac","tag-macos"],"_links":{"self":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/56767","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/comments?post=56767"}],"version-history":[{"count":0,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/56767\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media\/56768"}],"wp:attachment":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media?parent=56767"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/categories?post=56767"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/tags?post=56767"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}