Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi
Mate X7 rinnova la sfida nel segmento dei pieghevoli premium puntando su un design ancora più sottile e resistente, unito al ritorno dei processori proprietari della serie Kirin. L'assenza dei servizi Google e del 5G pesa ancora sull'esperienza utente, ma il comparto fotografico e la qualità costruttiva cercano di compensare queste mancanze strutturali con soluzioni ingegneristiche di altissimo livello
Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2005, 09:11   #1
Gandalf_BD
Senior Member
 
L'Avatar di Gandalf_BD
 
Iscritto dal: Jun 2004
Messaggi: 760
[C - newbie] gestione errori di sistema

Ciao a tutti...
ho bisogno di un piccolo aiuto...
avrei bisogno di inserire una chiamata ad un errore di sistema in un certo punto del codice...
o meglio...
faccio una fopen e, se il file non viene trovato, vorrei che mi saltasse fuori un messaggio di errore...
ho sentito dire che è possibile farlo, con una funzione che dovrebbe chiamarsi error(), però non so in che libreria si trovi e, provando ad inserirla così com'è, il compilatore mi da questo errore -> too few parameters...
mi spiegate come si usa?
grazie
__________________
Gandalf_BD
--------------------------------------------
"When you aim at perfection, you discover it's a moving target"
Gandalf_BD è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:12   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
La funzione si chiama "perror", ed è dichiarata in stdio.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:21   #3
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da ilsensine
La funzione si chiama "perror", ed è dichiarata in stdio.
funziona bene ho notato solo su linux su windows mia

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:24   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Fenomeno85
funziona bene ho notato solo su linux su windows mia
mmm presumo che ti sei perso qualche carattere scrivendo il messaggio

Vuoi dire che su win non funziona come ti aspetti, immagino? Potrebbe essere; c'è comunque una API di windows per avere informazioni sugli errori, non so se funziona anche con fopen (oltre che con CreateFile).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:24   #5
Gandalf_BD
Senior Member
 
L'Avatar di Gandalf_BD
 
Iscritto dal: Jun 2004
Messaggi: 760
Quote:
Originariamente inviato da ilsensine
La funzione si chiama "perror", ed è dichiarata in stdio.
grazie... e che parametri gli devo passare?
l'errore è sempre lo stesso o posso "decidere io" quale generare?
grazie 1000
__________________
Gandalf_BD
--------------------------------------------
"When you aim at perfection, you discover it's a moving target"
Gandalf_BD è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:25   #6
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da ilsensine
mmm presumo che ti sei perso qualche carattere scrivendo il messaggio

Vuoi dire che su win non funziona come ti aspetti, immagino? Potrebbe essere; c'è comunque una API di windows per avere informazioni sugli errori, non so se funziona anche con fopen (oltre che con CreateFile).
ma mi ha mozzato delle parti

su windows non funziona bene perror

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:28   #7
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da Gandalf_BD
grazie... e che parametri gli devo passare?
l'errore è sempre lo stesso o posso "decidere io" quale generare?
grazie 1000
Accetta una stringa, che è il prefisso da stampare. Ad es:

FILE *f = fopen(...);
if(!f) perror("fopen");

potrebbe stampare, in caso di errore di privilegi,
fopen: access denied

perror di per se è standard ansi; però come dice Fenomeno devi verificare se sia stata correttamente implementata sotto windows. L'alternativa mi sembra sia GetLastError, ma non so se funziona con fopen.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:35   #8
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
dai provo e vi posto i risultati

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:46   #9
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
perror con fopen funziona bene ... mi ricordavo male

Con getlasterror torna errore 2 ma qui bisogna capire che evento significa

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 09:56   #10
Gandalf_BD
Senior Member
 
L'Avatar di Gandalf_BD
 
Iscritto dal: Jun 2004
Messaggi: 760
Quote:
Originariamente inviato da Fenomeno85
Con getlasterror torna errore 2 ma qui bisogna capire che evento significa[/b]
ma getlasterror è sempre nella stdio.h?
__________________
Gandalf_BD
--------------------------------------------
"When you aim at perfection, you discover it's a moving target"
Gandalf_BD è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 11:11   #11
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
è sotto windows.h

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 12:02   #12
RaouL_BennetH
Senior Member
 
L'Avatar di RaouL_BennetH
 
Iscritto dal: Sep 2004
Messaggi: 3967
scusate l'OT, ma stavo morendo quando ho digitato fopen in google, come primo link mi ha restituito questo:

http://www.fondopensionefopen.it/


__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
RaouL_BennetH è offline   Rispondi citando il messaggio o parte di esso
Old 06-05-2005, 13:03   #13
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
Quote:
Originariamente inviato da RaouL_BennetH
scusate l'OT, ma stavo morendo quando ho digitato fopen in google, come primo link mi ha restituito questo:

http://www.fondopensionefopen.it/


cmq i problemi se non erro era nella programmazione di rete


~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2005, 08:03   #14
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Ciao...

Evito di aprire una nuova discussione perche' il tema e' piu' o meno lo stesso...

Con perror viene stampato un messaggio di errore relativo al valore 'corrente' della variabile errno. Sapete se c'e' qualche funzione analoga per stampare un messaggio relativo ad un valore arbitrario che errno potrebbe aver assunto in precedenza?
Mi spiego meglio: supponiamo che io esegua diverse chiamate a funzione, e che in caso di errore di queste mi vada a salvare, dopo ogni chiamata, il valore assunto da errno. Utilizzando questi valori salvati, posso in qualche modo stampare i corrispondenti messaggi d'errore in "differita"? Oppure, c'e' modo di redirigere l'output di perror su una stringa invece che su file? Mi serve perche' l'applicazione che sto facendo deve andare a 'compilare' piu' di un file di log, e voglio di volta in volta decidere su quale di questi file scrivere l'output di perror senza redirigerlo in continuazione.


Grazie,
Gica
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2005, 09:27   #15
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
strerror di string.h (e la funzione thread-safe strerror_r, per i sistemi che la supportano)
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 10-05-2005, 10:05   #16
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Perfetto! Proprio quello che cercavo

Grazie mille,
Gica
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 11-05-2005, 19:19   #17
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Ho letto che la strerror() puo' produrre la stringa di errore nella lingua specificata attraverso la variabile d'ambiente LC_MESSAGES, ma non riesco a trovare quali sono i possibili valori che si possono assegnare a tale variabile
Qualcuno sa quali sono? Potrebbero essere gli stessi di LANG?
Ultima cosa: settando tale variabile in un processo, poi devo anche esportarla affinche' sia visibile ai figli del processo stesso?

Grazie,
Gica

Aggiornamento: se do il comando locale, vedo che tutte le variabili del tipo LC_QUALCOSA hanno un valore, anche LC_MESSAGES; se invece do il comando echo $LC_MESSAGES ottengo una stringa vuota. Perche'?

Ultima modifica di Gica78R : 11-05-2005 alle 19:27.
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2005, 08:56   #18
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Non ti conviene modificare quelle variabili d'ambiente, non c'è motivo. Devi usare le impostazioni di sistema, non imporre le tue. Così se un turco eseguirà il tuo programma, si ritroverà automaticamente i messaggi in turco.

Se proprio vuoi, le variabili d'ambiente si gestiscono con getenv/putenv (ma solo nel namespace corrente, ovvero solo per il processo corrente).
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2005, 11:18   #19
Gica78R
Senior Member
 
L'Avatar di Gica78R
 
Iscritto dal: Mar 2005
Messaggi: 1653
Quote:
Originariamente inviato da ilsensine
Non ti conviene modificare quelle variabili d'ambiente, non c'è motivo. Devi usare le impostazioni di sistema, non imporre le tue. Così se un turco eseguirà il tuo programma, si ritroverà automaticamente i messaggi in turco.

Se proprio vuoi, le variabili d'ambiente si gestiscono con getenv/putenv (ma solo nel namespace corrente, ovvero solo per il processo corrente).
Si, su questo sono d'accordo... Solo che, come ho detto prima, apparentemente la variabile LC_MESSAGES non e' settata a nessun valore (stando a quanto prodotto da 'echo $LC_MESSAGES', mentre con il comando locale ottengo per la stessa variabile il valore "it_IT.UTF-8"). Percio' suppongo che i miei processi si ritrovino in esecuzione in un ambiente in cui tale variabile non e' settata appropriatamente, e quindi tutti i messaggi prodotti da strerror sono in inglese anziche' nella lingua locale.
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2005, 12:23   #20
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Allora, innanzitutto servono due cose: in primis, l'applicazione deve chiamare
setlocale(LC_ALL, "")
(definita in locale.h) in modo da poter utilizzare le impostazioni definite dalle variabili d'ambiente (nota che se non hai LC_MESSAGES sul tuo sistema, forse hai LC_ALL). Qui la man page è poco chiara, senza chiamare setlocale le variabili d'ambiente non hanno effetto. Quindi, è necessario che il database con le traduzioni per le tue localizzazioni sia presente; ad es. per it_IT.UTF-8 deve esistere il file
/usr/share/locale/it_IT/LC_MESSAGES/libc.mo
oppure il file
/usr/share/locale/it/LC_MESSAGES/libc.mo
Questo file dovrebbe essere fornito dalla distribuzione, ma molte non lo forniscono (ad es. sulla mia Mandrake non c'è).
In sintesi: chiama setlocale(LC_ALL, "") all'inizio del tuo programma e vivi tranquillo. Se non c'è la traslazione, vuol dire che manca libc.mo e su questo non puoi farci molto.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Recensione HUAWEI Mate X7: un foldable ottimo, ma restano i soliti problemi Recensione HUAWEI Mate X7: un foldable ottimo, m...
Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
Al centro della Via Lattea ci potrebbe e...
Elon Musk ora guarda alla Luna: SpaceX p...
La Cina ha lanciato nuovamente lo spazio...
Blue Origin potrebbe realizzare il lande...
Artemis II: il prossimo Wet Dress Rehear...
Il nuovo HONOR 600 sta arrivando e avr&a...
La crisi delle memorie non coinvolger&ag...
Windows domina su Steam, ma molti utenti...
Per non incorrere in nuovi aumenti delle...
Cubi Z AI 8M visto da vicino, un mini-PC...
Datacenter nello Spazio, affascinante ma...
Social e minori, Butti apre al dibattito...
Tutte le offerte Amazon del weekend, sol...
Amazon spinge sull'usato garantito: 10% ...
TikTok rischia una maxi-multa in Europa:...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 02:30.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v