Head First C ―頭とからだで覚えるCの基本
(オライリージャパン)
David Griffiths (著) Dawn Griffiths (著)
中田 秀基(監訳)(翻訳) 木下 哲也 (翻訳)
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- C (プログラミング言語)
- LLVM/Clang (コンパイラ, Xcode - Apple)
Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の10章(プロセス間通信: お話は楽しい)、自分で考えてみよう(p.435)を解いてみる。
その他参考書籍
- 21st Century C: C Tips from the New School
- プログラミング言語C 第2版 ANSI規格準拠 (B.W. カーニハン D.M. リッチー (著)、 石田 晴久 (翻訳)、共立出版)
- プログラミング言語Cアンサー・ブック 第2版 (クロビス・L.トンド、スコット・E.ギンペル(著)、矢吹 道郎(翻訳))
- C実践プログラミング 第3版 (Steve Oualline (著)、 望月 康司 (監訳) (翻訳)、 谷口 功 (翻訳)、 オライリージャパン)
自分で考えてみよう(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 コメント:
コメントを投稿