1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

C / Linux: Umlenkung von stderr ...

    • Frage
  • NickK
  • 17. Juli 2013 um 19:50
  • Unerledigt
  • NickK
    6
    NickK
    Mitglied
    Punkte
    310
    Beiträge
    46
    • 17. Juli 2013 um 19:50
    • #1

    Hallo,

    ich hoffe jemand kann mir da weiterhelfen:

    Gibts in C unter Linux eine Möglichkeit, stderr zur Laufzeit auf /dev/null zu verbiegen - oder die Ausgabe drauf sonst irgendwie verschwinden zu lassen - und auch wieder zurückzustellen ?

    Grund: ich verwend eine Bibliotheksfunktion die allerhand auf stderr ausgibt und so würd ich vor dem Funktionsaufruf stderr umlenken und nach d Aufruf wieder zurückstellen...

    Geht sowas ? Wie ?

    Danke, m f G

    NickK

  • Ramses13
    4
    Ramses13
    Mitglied
    Reaktionen
    4
    Punkte
    164
    Beiträge
    31
    • 17. Juli 2013 um 20:07
    • #2

    Sähe so aus, wenn du das so gemeint hast:

    Code
    command 2> /dev/null


    > ... Ausgabeumleitung stdout
    2> ... Selbiges stderr
    &> ... Selbiges für beide gleichzeitig

    Edit:
    Sorry, das hatte ich jetzt falsch verstanden. Du willst innerhalb eines Programms umleiten.
    In C gibt es die Variable stderr in stdio.h
    FILE * stderr;
    Die gilt es (temporär) neu zu setzen (mit einem Stream, der ins Leere geht).
    Siehe auch hier:
    http://www.gnu.org/software/libc/…tandard-Streams

    Einmal editiert, zuletzt von Ramses13 (17. Juli 2013 um 20:17)

  • NickK
    6
    NickK
    Mitglied
    Punkte
    310
    Beiträge
    46
    • 18. Juli 2013 um 11:20
    • #3
    Zitat von Ramses13


    Sorry, das hatte ich jetzt falsch verstanden. Du willst innerhalb eines Programms umleiten.
    In C gibt es die Variable stderr in stdio.h
    FILE * stderr;
    Die gilt es (temporär) neu zu setzen (mit einem Stream, der ins Leere geht).
    Siehe auch hier:
    http://www.gnu.org/software/libc/…tandard-Streams

    Alles anzeigen


    super, DANKE, hat ganz toll funktioniert ...


    FILE *old_stderr, *new_stderr;

    new_stderr = fopen ("/dev/null", "a");

    old_stderr = stderr;
    stderr = new_stderr;

    dubioser aufruf

    stderr = old_stderr;

    und am ende natürlich fclose ....

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung