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
$