開発環境
- OS: macOS High Sierra - Apple
- IDE(統合開発環境): Xcode - Apple
- プログラミング言語: C
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信 - お話は楽しい)、コードマグネット(p. 422)を取り組んでみる。
コードマグネット(p. 422)
// // main.c // sample1 // // Created by kamimura on 2018/02/26. // Copyright © 2018 kamimura. All rights reserved. // #include <stdio.h> #include <stdlib.h> #include <string.h> #include <errno.h> #include <unistd.h> void error(char *msg) { fprintf(stderr, "%s: %s\n", msg, strerror(errno)); exit(1); } int main(int argc, const char * argv[]) { char *phrase = (char*)argv[1]; char *vars[] = { "RSS_FEED=http://sitekamimura.blogspot.com/feeds/posts/default", NULL }; FILE *f = fopen("stories.txt", "w"); pid_t pid = fork(); if (pid == -1) { error("プロセスをフォークできません"); } if (!pid) { if (dup2(fileno(f), fileno(stdout)) == -1) { error("標準出力をリダイレクトできません"); } if (execle("/usr/bin/python", "/usr/bin/python", "rssgossip.py", phrase, NULL, vars) == -1) { error("スクリプトを実行できません"); } } return 0; }
入出力結果(Terminal)
$ ./rssgossip C $ cat stories.txt - Is Wikileaks founder Julian Assange about to leave the Ecuadorian embassy? - ! C - (fork(Python)unistd.h execle) - Could a crackdown on interest-only loans trigger a US-style housing meltdown? - ! C - ((Python)unistd.h execle) - Survivors of the Holocaust talk about how they defied the odds to rebuild their lives in Australia - ! - Python - JavaScript - - 1 1 - () C - (unistd.h execlexeclpstring.h strerror errno.h ) - Did the market crash today and what does it mean for you? - ! C - (time.hasctime) - Economics Professor Justin Woolfers talks about today's share market sell off - ! C - () - Python - JavaScript - - 1 1 - () C - - (stdarg.hva_listva_startva_argva_end) C - - ((enum)) - There's another humanitarian crisis in Syria that could dwarf Aleppo - ! C - - ((enum)switch ) - Barnaby Joyce says end of his marriage 'one of the greatest failures of my life' - ! - Python - JavaScript - - - - () C - - (sdtlib.h qsort) - Python - JavaScript - - 1 1 - () - Adam Bandt apologises to Jim Molan after accusing him of war crimes - ! $ ./rssgossip Python $ cat stories.txt C - (fork(Python)unistd.h execle) C - ((Python)unistd.h execle) - Python - JavaScript - - 1 1 - () - Python - - 1 1 - () - Python - JavaScript - - 1 1 - () - Python - JavaScript - - - - () - Python - JavaScript - - 1 1 - () - Python - - - (()) $
0 コメント:
コメントを投稿