開発環境
- OS: macOS High Sierra - Apple
- Text Editor: Emacs
- コンパイラー: LLVM/Clang, GCC(gcc)
- プログラミング言語: C
Head First C ―頭とからだで覚えるCの基本 (David Griffiths (著)、Dawn Griffiths (著)、中田 秀基 (監修)、木下 哲也 (翻訳)、オライリージャパン)の9章(プロセスとシステムサービス - 限界を超える)、エクササイズ(p. 417)を取り組んでみる。
エクササイズ(p. 417)
Makefile
CC = cc all: sample run sample: sample.c $(CC) sample.c -o sample run: sample ./sample
コード
#include <errno.h> #include <stdio.h> #include <string.h> #include <unistd.h> int main(int argc, char *argv[]) { char *feeds[] = {"http://rss.cnn.com/rss/edition.rss", "http://rss.cnn.com/rss/edition_world.rss", "http://rss.cnn.com/rss/edition_asia.rss"}; int times = 3; char *phrase = argv[1]; for (int i = 0; i < times; i++) { char var[255]; sprintf(var, "RSS_FEED=%s", feeds[i]); char *vars[] = {var, NULL}; if (execle("/usr/bin/python", "/usr/bin/python", "rssgossip.py", phrase, NULL, vars) == -1) { fprintf(stderr, "スクリプトを実行できません: %s\n", strerror(errno)); return 1; } } }
入出力結果(Terminal)
$ make cc sample.c -o sample ./sample Traceback (most recent call last): File "rssgossip.py", line 51, in <module> searcher = re.compile(args[0], re.IGNORECASE) IndexError: list index out of range make: *** [run] Error 1 $ ./sample Japan $ ./sample JP $ ./sample US US intel agency believes Kim won't fully denuclearize Cohen must be making Trump very nervous right about now Princess Ayako introduces her future husband, a shipping employee Canada hits $13B of US goods with tariffs Australia banning plastic bags Someone bought $1M in Toys 'R' Us toys right before it went out of business Massive brawl at Australia-Philippines game $
0 コメント:
コメントを投稿