Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > it.comp.os.linux.development > #53
| 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> |
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 | Next — Previous in thread | Next in thread | Find similar
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