0

Head First C を実行中です。ほぼ完了です。しかし、うーん、これらのエクササイズが機能しないことにうんざりしています。プロセスとシステム コールの章では、python プログラムをダウンロードし、コードを実行します。これにより、python が 3 回フォークされて実行されます。そのたびに、コマンド ラインに記述したフレーズを rss フィードで検索する必要があります。RSS フィードは環境変数です。もちろん、BBC から 2 つ、StackOverflow から 1 つを選択しました。

この本は、検索したいフレーズでプログラムを呼び出すことができるはずであり、次の行にすべての一致が表示されることを示しています。結果が得られないか、奇妙な結果が得られ、重複しない結果が得られます。申し訳ありませんが、インクルードが正しく見えません。

https://github.com/dogriffiths/rssgossip/zipball/masterからダウンロードした Python コード。

問題はコードなのか、Cygwin なのか、Python なのか、それとも私だけなのか????

C プログラム:

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

int main(int argc, char *argv[]) {
    char *feeds[] = {"http://feeds.bbci.co.uk/news/world/us_and_canada/rss.xml",
                    "http://stackoverflow.com/feeds",
                    "http://feeds.bbci.co.uk/news/technology/rss.xml"};
    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};

        //FORK() AND EXEC()
        pid_t pid = fork(); 
        if (pid == -1) {    
            fprintf(stderr, "Could not fork process: %s\n", strerror(errno));
            return 1;
        }
        if (!pid) {         // pid == 0 for child process
            if (execle("/usr/bin/python", "/usr/bin/python", "./rssgossip.py", phrase, NULL, vars) == -1) {
                fprintf(stderr, "Can't run script: %s\n", strerror(errno));
                return 1;
            }
        }
    }
}

以下の結果はすべて、このプログラムの同じコンパイルからのものです。フィードはときどき変更されましたが、複数のフィードで見た単語を選択しましたが、複数の結果が得られたのは 1 回だけでした。

ネットのクジラのものは、2行のこのRSSエントリからのものでしたが、私にとってはフォーマットされていません:

網に絡まったクジラを救助する方法 漁網からクジラを救助するカナダのチーム

したがって、両方の行が返されるはずです。

後の結果は次の$ようなものでした。上の行にコマンドを入力しましたが、しばらく何も実行されず、新しいプロンプトが表示され、次の行に結果が表示されました。その後、停止します。まだ検索しているかどうかを確認するためにしばらく待ちました。新しいコマンドを入力できるとは知らなかったので、ctrl-C を押しました。

シグウィン:

XPS410 ~/c-bin
$ gcc newshound.c -o newshound

XPS410 ~/c-bin
$ ./newshound 'website'

XPS410 ~/c-bin
$ ./newshound 'mobile'

XPS410 ~/c-bin
$ jquery mobile button icons-36-white.png shows wrong icon
^C

XPS410 ~/c-bin
$ ./newshound 'mobile'

XPS410 ~/c-bin
$ ./newshound 'website'

XPS410 ~/c-bin
$ ./newshound 'the'

XPS410 ~/c-bin
$ AUDIO: Gunman's mother: 'My heart is broken'
China 'unblocks' Twitter and others
VIDEO: Exploring the violent world of GTA5
Make-It-Yourself: The rise of the micro-manufacturers
Digital Indians: The final Hangout
Could high-end camping gear save lives around the world?
"Unrecognized selector sent to instance", even though the instance is the right type
ASPNET MVC : Getting rid of apple-touch-icon errors : The controller for path Controller1/apple-touch-icon-precomposed.png was not found
Error deleting files with FineUploader when using more than one uploader in the same jsp
Javascript on click not showing the elements it should
Sum a column that corresponds a aggregate from a column of another table
Trying To Find The Cause Of Very Slow MySQL Query
How can I quickly find the first element in a list that matches a conditional?
Meteor.js: how to pass the data context of one helper to another helper?
Iam using javamail IAP but I dont know how to get Sent or another folder except inbox
^C

XPS410 ~/c-bin
$ ./newshound 'net'

XPS410 ~/c-bin
$ How to rescue whales tangled in nets
^C

XPS410 ~/c-bin
$ ^C

XPS410 ~/c-bin
$ ps
      PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
      416       1     416        416  ?       1005   Sep 20 /usr/bin/mintty
     5852     416    5852       5664  pty0    1005   Sep 20 /usr/bin/bash
     5564    5852    5564        800  pty0    1005 13:31:44 /usr/bin/ps

XPS410 ~/c-bin
XPS410 ~/c-bin
$ ps
      PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
     4348    5852    4348       5192  pty0    1005 13:31:52 /usr/bin/ps
      416       1     416        416  ?       1005   Sep 20 /usr/bin/mintty
     5852     416    5852       5664  pty0    1005   Sep 20 /usr/bin/bash
     2644       1    5856       1288  pty0    1005 13:31:51 /usr/bin/python2.6
     1384       1    5856        872  pty0    1005 13:31:51 /usr/bin/python2.6
     5864       1    5856       5344  pty0    1005 13:31:51 /usr/bin/python2.6

XPS410 ~/c-bin
$ How to rescue whales tangled in nets
ps
      PID    PPID    PGID     WINPID   TTY     UID    STIME COMMAND
     3980    5852    3980       4348  pty0    1005 13:32:56 /usr/bin/ps
      416       1     416        416  ?       1005   Sep 20 /usr/bin/mintty
     5852     416    5852       5664  pty0    1005   Sep 20 /usr/bin/bash

XPS410 ~/c-bin
$
4

1 に答える 1