🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Unas cuantas preguntas:

#18264
From: batsman batsman
Date: Sat, 18 Sep 1999 00:00
102 lines
3996 bytes
In article <7rk74v$6d6$1@batcher.rediris.es>, Julio C�sar Carrascal wrote:
>1. Programar en C++ para X. �Qu� es mejor: KDE/Qt o GNOME/GTK+?
Si programas con GTK "tal cual", usas C. Existen bindings para otros 
lenguajes; ahora recuerdo perl, C++, pike, ada95, eiffel, guile,
javascript, objective C, pascal y python. Para C++ en particular
tienes GTK--, VDK y wxWindows/GTK; estos dos �ltimos se pueden usar para 
desarrollar aplicaciones multi-plataforma para X11 y windows, si no recuerdo
mal. Mi experiencia con GTK-- no ha sido muy buena que digamos: el egcc 
no me lo compilaba (los t�picos "Internal compiler error"), pero eso es culpa
del compilador y no de la librer�a...

>2. �C�mo utilizo el fork?
>le� un ejemplo en el que llamaban a fork y le asignaban el valor que
>regresaba a una variable y luego con un if
>    if( proceso = 0 ) {
>        // hace una cosa...
>    } else {
>        // hace otra.
>    }
>    // hace en los dos procesos....
>
>�Est� bien esto?
S�, aunque queda m�s potito as�:
    int pid;
    switch ( (pid = fork()) ) {
	case 0:
	    /* c�digo del hijo aqu� */
	    break;
	default:
	    /* c�digo del padre, pid es el del hijo */	
    }
    
>3. �C�mo diferencio si el usuario est� mandando datos por la entrada
>estandard o debo abrir un archivo?
Pruebas con argc y argv. Por ejemplo

int main(int argc, char *argv[])
{
    int usa_archivo;
    if (argc<2) usa_archivo = 0;
    else usa_archivo = 1;
    
    /*  bla bla bla */
    /* ... y cuando leas datos usas argv[1] como nombre de archivo si 
	usa_archivo */

}

La cosa se complica si usas getopt (man 3 getopt)... 
ejemplo cutre (ojo, no compilado)

#include <stdlib.h>
#include <unistd.h>
#include <string.h>

int main(int argc, char *argv[])
{
 int c;
 char *in_file = NULL;
 char *out_file = NULL;

 while ( (c = getopt(argc, argv, "i:o:")) != -1 ) {
     switch(c) {
         case 'i':
	    in_file = strdup(optarg);	     
             break;
         case 'o':
	     out_file = strdup(optarg);
	     break;
     }
 }
 if (!in_file) { /* leer de stdin */
 
 }
 else { /* leer del fichero */
 
 }

}


Me ha quedado bastante largo... es que me he cambiado el editor del slrn
por el mcedit y me he animado :-) (�acaso soy el �nico que adora UNIX pero
odia el vi?)

-- 
              _           _                             
             | |__   __ _| |_ ___ _ __ ___   __ _ _ __  
             | '_ \ / _` | __/ __| '_ ` _ \ / _` | '_ \ 
             | |_) | (_| | |_\__ \ | | | | | (_| | | | |
             |_.__/ \__,_|\__|___/_| |_| |_|\__,_|_| |_|
  ________________________________________________________________
 |Visit   |  http://www.geocities.com/SiliconValley/Vista/2075    |
 |	  |    <=>   http://come.to/batsman                       |
 |	  | and http://www.linuxfreak.com/~quickchat		  |
 |Linux (esp):  http://www.geocities.com/SiliconValley/Vista/4289 |
 |----------------------------------------------------------------|
 |Email:  |            mailto:batsman@geocities.com               |
  ----------------------------------------------------------------
		POWERED BY GNU/LINUX	DEBIAN 2.01 HAMM

                                           
Technical Details
Message-ID: <fk51s7.0h8.ln@simpsons4ever>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <7rk74v$6d6$1@batcher.rediris.es>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,5d8a54fcda888e76
X-Google-Attributes: gidf86c8,public
From: batsman@simpsons4ever. (batsman)
Subject: Re: Unas cuantas preguntas:
Date: 1999/09/18
Message-ID: <fk51s7.0h8.ln@simpsons4ever>
X-Deja-AN: 526943531
Distribution: es
Content-Transfer-Encoding: 8bit
References: <7rk74v$6d6$1@batcher.rediris.es>
Content-Type: text/plain; charset=iso-8859-1
X-Complaints-To: newsmanager@rediris.es
X-Trace: batcher.rediris.es 937727414 20352 212.49.137.165 (19 Sep 1999 07:50:14 GMT)
Organization: Debian 2.01 HAMM User
Mime-Version: 1.0
NNTP-Posting-Date: 19 Sep 1999 07:50:14 GMT
Newsgroups: es.comp.os.linux.programacion