Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > it.comp.os.linux.development > #53

Re: Usare o no lo stderr?

From guido84 <guido84@invalid.invalid>
Newsgroups it.comp.os.linux.development
Subject Re: Usare o no lo stderr?
Date 2017-06-10 10:33 +0000
Organization Aioe.org NNTP Server
Message-ID <ohght9$1onf$1@gioia.aioe.org> (permalink)
References <ohgc9s$1g7e$1@gioia.aioe.org> <ohgh2j$ltu$1@milena.home.net.it>

Show all headers | View raw


Il 10/6/2017 12:18:59 Giovanni scrisse:
>On 06/10/2017 10:57 AM, guido84 wrote:
>> Usando la  funzione strdup() con questo codice:
>>
>> ----------------------------------------
>> // char *strdup(char *vettore_origine)  -- Fuori standard ANSI
>> #include <stdio.h>
>> #include <string.h>
>>
>> int main(int argc, char **argv)
>> {
>> char *dest;
>> ..............
>>
>> A questo punto, per evitare un'immissione che provocherebbe
>> un sigfault, ho trovato due modi, potreste dirmi qual e' il
>> migliore? (funzionano entrambi benissimo)
>>
>> --------------- PRIMO MODO -----------------
>> if (argc == 1)      // Se argv[1]=0 va in sigfault
>> {
>> printf("Usage: Duplica il vettore-stringa $1 in stdout \n");
>> }
>>
>> else
>> {
>> dest = strdup(argv[1]);
>> printf("%s\n", dest);
>> }
>> return 0;
>> }
>> -----------
>>
>> ================ SECONDO MODO ================
>> #include <stdlib.h>
>>
>> if (argc == 1)           // carica l'errore in stderror?
>> {
>> fprintf(stderr, "Usage: Duplica il vettore-stringa $1 in stdout \n");
>> exit(1);                 // evita il sigfault?
>> }
>>
>> dest = strdup(argv[1]);
>> printf("%s\n", dest);
>> return 0;
>> }
>> ==========


>In genere 'stderr' si usa per i messaggi di errore per evitare che
>vengano mescolati all'output del programma.

>Molto spesso l'output di un programma รจ usato come input ad un altro ed
>i messaggi di errore non sarebbero visibili o produrrebbero causare
>errori anche nel programma che analizza l'output del primo.

Dunque in conclusione e' meglio il primo modo: senza l'exit(1) ?
Usa anche una libreria in meno.

>PS:  Mi spieghi che significa "$1" nella stringa che *dovrebbe* spiegare 
>l'uso del programma>

E' il $1 della bash, l'alternativa e' argv[1], mi sembrava piu'
chiaro e veloce con $1, con argv[1] si puo' far casino rileggendo
dopo un po' e ricordando male con la storia che comincia da 0.

-- 
Saluti,
Guido

Back to it.comp.os.linux.development | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-10 08:57 +0000
  Re: Usare o no lo stderr? Giovanni <lsodgf0@home.net.it> - 2017-06-10 12:18 +0200
    Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-10 10:33 +0000
      Re: Usare o no lo stderr? Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-10 15:52 +0100
        Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-10 16:56 +0000
  Re: Usare o no lo stderr? Giuseppe Della Bianca <bepi.zac@zac.adria.it> - 2017-06-10 13:54 +0200
    Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-10 13:45 +0000
      Re: Usare o no lo stderr? Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-10 15:59 +0100
        Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-10 16:56 +0000
  Re: Usare o no lo stderr? enoquick <enoquick@gmail.com> - 2017-06-10 20:39 -0500
    Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-11 09:16 +0000
      Re: Usare o no lo stderr? enoquick <enoquick@gmail.com> - 2017-06-11 07:43 -0500
        Re: Usare o no lo stderr? guido84 <guido84@invalid.invalid> - 2017-06-11 18:56 +0000
          Re: Usare o no lo stderr? Alessandro Pellizzari <shuriken@amiran.it> - 2017-06-12 21:45 +0100

csiph-web