The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
dup2 перенаправление , !*! dsfaf, 14-Июл-09, 17:41  [смотреть все]
Привет всем.
Хочу перенаправлять весь STDERR на почту. Знаю что есть ф-я dup2().
Пробую:
#!/usr/local/bin/perl

use strict;
use POSIX qw(dup2);

dup2(<STDOUT>,"| mail -s test_redir root");

print "redirect";

На STDOUT выводит, а письма нет...

  • dup2 перенаправление , !*! angra, 18:55 , 14-Июл-09 (1)
    1) зачем для этого dup2, если можно просто переоткрыть/присвоить STDERR
    2) вы говорите про STDERR, а в коде работаете с STDOUT, так что на самом деле вам нужно?
    • dup2 перенаправление , !*! dsfaf, 11:02 , 22-Июл-09 (4)
      >1) зачем для этого dup2, если можно просто переоткрыть/присвоить STDERR
      >2) вы говорите про STDERR, а в коде работаете с STDOUT, так
      >что на самом деле вам нужно?

      нужен STDERR. это была опечатка.
      мне на самом деле хотелось бы чтобы STDERR выводился как стандартным образом, так и отправлялся на мыло. поэтому выбор пал на dup2

  • dup2 перенаправление , !*! coDEbugger, 14:28 , 15-Июл-09 (2)
    Для начала необходимо закрыть stderr, после чего открыть файл, куда будет падать вывод stderr. Этот файл получит файловый дескриптор 2, так как система выдает минимальный свободный дескриптор, доступный на момент открытия файла
  • dup2 перенаправление , !*! аноним, 18:49 , 15-Июл-09 (3)
    >dup2(<STDOUT>,"| mail -s test_redir root");

    Кошмар, слов нет! Слабо открыть perldoc POSIX и почитать какие аргументы принимает dup2? Нет, не <STDOUT> (это вообще-то строка, прочитанная из STDOUT, что само по себе бред) и даже не STDOUT. И нет, не строку.

    Когда разберетесь с этим, откройте perldoc -f open и узрите все что вам нужно с примерами.

    • dup2 перенаправление , !*! dsfaf, 11:10 , 22-Июл-09 (5)
      >>dup2(<STDOUT>,"| mail -s test_redir root");
      >
      >Кошмар, слов нет! Слабо открыть perldoc POSIX и почитать какие аргументы принимает dup2? Нет, не <STDOUT> (это вообще-то строка, прочитанная из STDOUT, что само по себе бред) и даже не STDOUT. И нет, не строку.
      >
      >Когда разберетесь с этим, откройте perldoc -f open и узрите все что
      >вам нужно с примерами.

      каюсь, не осилил я книжку Ларри Уолла. Но если б я знал - не спрашивал. Для того и есть форум, я думаю.

      я читал man dup2. пробовал много всего.. потом решил спросить.
      в общем, как я написал angra, мне нужно чтобы STDERR валился параллельно и туда и сюда.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру