2015年6月4日木曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信: お話は楽しい)、自分で考えてみよう(p.435)を解いてみる。

その他参考書籍

自分で考えてみよう(p.435)

コード(BBEdit, Emacs)

#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <error.h>

int main(int argc, char **argv) {
  char *vars[] = {"RSS_FEED=http://rss.cnn.com/rss/edition.rss", NULL};
  char *phrase = argv[1];
  FILE *f = fopen("stories.txt", "w");
  if (!f) error("stories.txtを開けません");
  pid_t pid = fork();
  if (pid == -1) error("プロセスをフォークできません");
  if (!pid) {
    if (dup2(fileno(f), 1) == -1) error("標準出力をリダイレクトできません");
    if (execle("/usr/bin/python", "/usr/bin/python", "./rssgossip.py",
               phrase, NULL, vars) == -1)
      error("スクリプトを実行できません");
  }        
}

入出力結果(Terminal)

$ make
clang ...
$ ./newshound2 US
$ cat stories.txt 
Who was Usaamah Rahim?
Walking fish poses threat on land in Australia
Outdoor swimming in London just got hotter
Tom Hanks' rapper son slammed for defending use of N-word
Can you be Muslim and a hipster?
Russia's space program in crisis?
Is this the most ambitious luxury home ever?
Boko Haram suspected in attack
In Florida, Bush marks his territory
The homeowners who refused to budge
Stunning images: Chinese houses laid bare
$ 

0 コメント:

コメントを投稿