NoPaste

C Script RSS

von debianix
SNIPPET_DESC:
Feed auslesen mit ext. Python Script
SNIPPET_CREATION_TIME:
23.01.2014 17:59:50
SNIPPET_PRUNE_TIME:
Unendlich

SNIPPET_TEXT:
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <errno.h>
  4. #include <string.h>
  5.  
  6. int main(int argc, char *argv[]) {
  7.         char *feeds[] = { "http://www.chip.de/rss/rss_downloads.xml",
  8.                         "http://www.chip.de/rss/rss_tests.xml",
  9.                         "http://www.chip.de/rss/rss_topnews.xml" };
  10.  
  11.         int times = 3;
  12.         char *phrase = argv[1];
  13.         int i;
  14.         for (i = 0; i < times; i++) {
  15.                 char var[255];
  16.                 sprintf(var, "RSS_FEED=%s", feeds[i]);
  17.                 char *vars[] = { var, NULL };
  18.  
  19.                 //pid_t bedeutet: Die versch. Betriebssysteme nutzen versch. Ganzzahltypen um die Prozess-ID zu speichern. pid_t passt sich an...
  20.                 pid_t pid = fork();
  21.                 // Wenn fork() -1 liefert gab es ein Problem beim Klonen des Prozesses
  22.                 if (pid == -1) {
  23.                         fprintf(stderr, "Fehler beim Forken: %s\n", strerror(errno));
  24.                         return 1;
  25.                 }
  26.                 // Gleich wie "(pid == 0)"
  27.                 if (!pid) {
  28.                         // Wenn Sie diesen Punkt erreichen, sind Sie im Kindprozess und sollten das exec()-Script ausführen.
  29.                         if (execle("/usr/bin/python", "/usr/bin/python",
  30.                                         "/home/frieder/01KopfBisFuss/rssgossip.py", phrase, NULL,
  31.                                         vars) == -1) {
  32.                                 fprintf(stderr, "Fehler mit Script: %s\n", strerror(errno));
  33.                                 return 1;
  34.                         }
  35.                 }
  36.  
  37.         }
  38.         return 0;
  39. }

Quellcode

Hier kannst du den Code kopieren und ihn in deinen bevorzugten Editor einfügen. PASTEBIN_DOWNLOAD_SNIPPET_EXPLAIN