Article View: es.comp.os.linux.programacion
Article #1955Cerrar un pipe mientras está ejecutándose
From: David Lago
Date: Mon, 16 May 2005 19:53
Date: Mon, 16 May 2005 19:53
52 lines
2775 bytes
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-mailShow 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