2014年2月24日月曜日

開発環境

Head First C ―頭とからだで覚えるCの基本(David Griffiths (著)、Dawn Griffiths (著) 中田 秀基(監訳)(翻訳)、木下 哲也 (翻訳)、オライリージャパン)の9章(プロセスとシステムサービス)、コードマグネット(p.422)を解いてみる。

その他参考書籍

コードマグネット(p.422)

コード(BBEdit, Emacs)

newshound.c

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

int main(int argc, char *argv[])
{
    char *feeds[] = {"http://feeds.feedburner.com/KamimurasBlog?format=xml",
                     "http://rss.cnn.com/rss/edition.rss",
                     "http://www.rollingstone.com/siteServices/rss/allNews"};
    int times = 3;
    char *phrase = argv[1];
    int i;
    
    for (i = 0; i < times; ++i) {
        char var[255];
        sprintf(var, "RSS_FEED=%s", feeds[i]);
        char *vars[] = {var, NULL};
        
        pid_t pid = fork();
        if (pid == -1) {
            fprintf(stderr, "プロセスをフォークで来ません:%s\n",
                strerror(errno));
            return (1);
        }
        if (!pid) {
            if (execle("/usr/bin/env", "/usr/bin/env", "python", "rssgossip.py",
                    phrase, NULL, vars) == -1) {
                fprintf(stderr, "スクリプトを実行出来ません:%s\n", strerror(errno));
                return 1;
            }
        }
    }
    return (0);               
}

Makefile

all: newshound

newshound: newshound.c
 cc -g -o newshound newshound.c

clean:
 rm newshound

入出力結果(Terminal)

$ make
cc -g -o newshound newshound.c
$ ./newshound 'art' > temp.txt
$ cat temp.txt
Dart - (DOM(Document Object Model))
Dart - (HTML(text, setInnerHtml))
Mac Quick Tips - Smart Folders ( Use custom search criteria to create Smart folders. ) !
 - Dart SDKDart EditorKey Bindings(Content AssistantOS XSpotlight)
Dart - (querySelector, querySelectorAll)
Where does art end and politics begin?
No cash, no cards -- just your smartphone
Families reunited after decades apart
Party expels 'bulldozer' mayor 
$

0 コメント:

コメントを投稿