Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
Recensione realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh
realme 16 5G è un nuovo smartphone con sensore Sony IMX 852 da 50MP sul retro e uno specchio selfie fisico integrato nella camera bar, una prima nel segmento di mercato. Batteria da 6550mAh in un corpo da 8,1mm e 183g, certificazione IP69K e ricarica da 45W completano un pacchetto aggressivo per la fascia media, per uno dei prodotti più interessanti del produttore sul piano commerciale
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni
Sono ormai definitive le nuove norme del Codice della Strada per i monopattini elettrici. Non solo targa e assicurazione, le regole sono tante e riguardano diversi aspetti, vi spieghiamo come evitare sanzioni che possono essere salate
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 06-05-2005, 08: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, 08: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, 08: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, 08: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, 08: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, 08: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, 08: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, 08: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, 08: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, 08: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, 10: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, 11: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, 12: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, 07: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, 08: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, 09: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, 18: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 18:27.
Gica78R è offline   Rispondi citando il messaggio o parte di esso
Old 12-05-2005, 07: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, 10: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, 11: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 realme 16 5G: lo smartphone con Selfie Mirror ha una batteria da 6550mAh Recensione realme 16 5G: lo smartphone con Selfi...
Come rispettare tutte le nuove regole per i monopattini elettrici? La guida per non rischiare sanzioni Come rispettare tutte le nuove regole per i mono...
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
La NASA sta provando il Divergent Deploy...
Fidanzarsi con l'IA non è cos&igr...
AI Overviews: quando il riassunto &egrav...
Il circuito segreto di Apple finisce a W...
Disastro Meta: l'azienda elimina il rico...
Google Gemini non va: centinaia di segna...
Neural Dawn mostra il futuro del gaming ...
Telegram torna su Apple Watch con un'app...
Da oggi si può acquistare Amazon ...
Windows 11 è più veloce: implementati il...
Ritornano gli auricolari con il cavo: Te...
Insta360 Luna Ultra: ecco il debutto del...
BOOX Go 6 Gen II ufficiale: ora si scriv...
BYD sfida Tesla con un piano da 2 miliar...
La corsa ai datacenter passa dalla stamp...
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: 18:12.


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