🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1955

Cerrar un pipe mientras está ejecutándose

#1955
From: David Lago
Date: Mon, 16 May 2005 19:53
52 lines
2775 bytes
Buenas a todos,

Estoy haciendo una funci�n que detecta si hay o no un CD insertado en la
unidad. Para ello captura la salida del comando:

cdrdao disk-info --device ATA:1,1,0 2>&1


Que viene siendo algo como esto:

Cdrdao version 1.1.9 - (C) Andreas Mueller <andreas@daneb.de>
  SCSI interface library - (C) Joerg Schilling
  Paranoia DAE library - (C) Monty

Check http://cdrdao.sourceforge.net/drives.html#dt for current driver
tables.

Using libscg version 'schily-0.8'

ATA:1,1,0: HL-DT-ST DVD+RW GCA-4040N    Rev: 1.02
Using driver: Generic SCSI-3/MMC - Version 2.0 (options 0x0000)

WARNING: Unit not ready, still trying...


Lo que hago es saltarme las primeras lineas, y si la siguiente empieza
por WARNING, salgo de la funci�n devolviendo un valor que indique la
ausencia de CD en la unidad. El caso es que antes de salir hago un
pclose(...), y como el comando del pipe todav�a no ha terminado (siguen
saliendo WARNINGs hasta que insertas un CD), se rompe la tuber�a con
este error:

sh: line 1:  2531 Tuber�a rota cdrdao disk-info --device ATA:1,1,0 2>&1


En principio me da igual que se cierre a lo bestia. Lo que no me gusta
es que la salida de mi programa se ve "ensuciada" por esta linea, y
parece que hay un error, cuando es normal. Mi pregunta es: �hay alguna
manera de cerrar "educadamente" una pipe cuando el programa que invoca
todav�a no ha terminado? y si no se puede �c�mo me libro de este mensaje
de error para que no salga por pantalla?

Gracias de antemano,
David.
-- 
#############################################
#      David Lago <dlago@mundo-r.com>       #
#     PGP key available at pgp.mit.edu      #
# ----------------------------------------- #
#          Personal Blizog at               #
#  http://www.arcanelinux.org/blog/dlworld  #
#############################################
Technical Details
Message-ID: <d6atn0$pda19@cesio.mundo-r.com>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!npeer.de.kpn-eurorings.net!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,7f474458e893d6bc,start
X-Google-Attributes: gidf86c8,public
X-Google-Language: SPANISH,ASCII
Path: arc1-ca.pugleaf.net!g2news1.google.com!news3.google.com!news.glorb.com!npeer.de.kpn-eurorings.net!newsfeed00.sul.t-online.de!t-online.de!news1.dtag.de!cesio.mundo-r.com!not-for-mail
From: David Lago <dlago@mundo-r.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Cerrar un pipe mientras está ejecutándose
Date: Mon, 16 May 2005 21:53:03 +0200
Organization: R Cable y Telecomunicaciones
Lines: 52
Message-ID: <d6atn0$pda19@cesio.mundo-r.com>
NNTP-Posting-Host: cm188095.red.mundo-r.com
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-15
Content-Transfer-Encoding: 8bit
User-Agent: Mozilla Thunderbird 1.0.2 (X11/20050515)
X-Accept-Language: en-us, en
X-Enigmail-Version: 0.90.0.0
X-Enigmail-Supports: pgp-inline, pgp-mime