Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista
Il nuovo top di gamma vivo punta su un comparto fotografico particolarmente articolato, con un teleobiettivo da 200 megapixel e teleconvertitori esterni capaci di arrivare a 400 mm equivalenti. Lo abbiamo provato a Tenerife, mettendo alla prova fotocamere, prestazioni, autonomia e accessori. Ecco come si è comportato.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 23-04-2006, 21:54   #1
Oppid
Senior Member
 
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
domanda per esperti

Salve ragazzi, mi trovo di fronte ad un problema a cui non riesco a trovare una spiegazione!
Supponendo di avere un file scritto in c che contiente una:

char *str = "Ciao mondo";
printf("Salve mondo\n");
write(1,str,10);

il problema è il seguente:
Se eseguo normalmente a.out viene eseguita prima la printf e poi la write.
Ma se eseguo a.out > file ; cat file, viene eseguita prima la write e poi la printf!
Come mai accade questo!!!???
__________________
Felice di aver trascorso la mia adolescenza con winning eleven Toshiba A500-14F
Oppid è offline   Rispondi citando il messaggio o parte di esso
Old 23-04-2006, 22:07   #2
ArtX
Registered User
 
Iscritto dal: Feb 2005
Messaggi: 1856
forse è meglio se lo chiedi sulla sezione programmazione
ArtX è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 10:21   #3
VICIUS
Senior Member
 
L'Avatar di VICIUS
 
Iscritto dal: Oct 2001
Messaggi: 11471
Sposto in programmazione.

ciao
VICIUS è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 12:14   #4
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Oppid
char *str = "Ciao mondo";
printf("Salve mondo\n");
write(1,str,10);
Innanzitutto tieni presente che stai usando 2 funzioni di I/O ad un diverso livello. write è una delle funzioni native di Linux. printf è una delle funzioni della libreria standard del "C".
Le funzioni di I/O come la printf sono, notoriamente, bufferizzate. Le funzioni native come la write non credo che siano bufferizzate (dovrei comunque leggere bene la documentazione ).

Non so spiegarti esattamente e precisamente perché c'è questa differenza. Credo che il problema sia appunto una questione legata al buffering.

In generale, comunque, bisogna stare attenti ad utilizzare in modo "mixato" le funzioni native e le funzioni "di alto livello" della libreria standard del "C". Se vuoi risolvere la cosa, puoi fare così:
Codice:
char *str = "Ciao mondo";
printf("Salve mondo\n");
fflush (stdout);
write(1,str,10);
In questo modo (ho provato) hai sempre la stessa sequenza di output.
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 24-04-2006, 13:24   #5
Oppid
Senior Member
 
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
Quote:
Originariamente inviato da andbin
Innanzitutto tieni presente che stai usando 2 funzioni di I/O ad un diverso livello. write è una delle funzioni native di Linux. printf è una delle funzioni della libreria standard del "C".
Le funzioni di I/O come la printf sono, notoriamente, bufferizzate. Le funzioni native come la write non credo che siano bufferizzate (dovrei comunque leggere bene la documentazione ).

Non so spiegarti esattamente e precisamente perché c'è questa differenza. Credo che il problema sia appunto una questione legata al buffering.

In generale, comunque, bisogna stare attenti ad utilizzare in modo "mixato" le funzioni native e le funzioni "di alto livello" della libreria standard del "C". Se vuoi risolvere la cosa, puoi fare così:
Codice:
char *str = "Ciao mondo";
printf("Salve mondo\n");
fflush (stdout);
write(1,str,10);
In questo modo (ho provato) hai sempre la stessa sequenza di output.
andbin grazie per la risposta e per il codice esatto che risolve la cosa!
Cmq sono riuscito a capire il perchè....o almeno credo, quindi adesso lo scrivo casomai servisse ad altri!
La write come hai detto tu è una funzione nativa di linux ed è UNDBUFFERED, cioè appunto le istruzioni di I/O non bufferizzano i caratteri e vengono eseguite immediatamente, mentre la printf è una funzione della libreria standard di I/O ed è LINEBUFFERED ossia il buffer viene svuotato (e l'operazione di I/O viene eseguita) ogni qualvolta si incontra un carattere di newline o quando questo è pieno. Quindi viene prima "scritta" la write perchè essendo unbuffered i caratteri vengono scritti immediatamente, e poi la printf quando si incontra il carattere di newline....in sostanza è quello che avevi detti tu, più o meno. Grazie e ciao!
__________________
Felice di aver trascorso la mia adolescenza con winning eleven Toshiba A500-14F
Oppid è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2006, 19:39   #6
Bahamut Zero
Senior Member
 
L'Avatar di Bahamut Zero
 
Iscritto dal: Apr 2000
Città: Naples
Messaggi: 3907
Oppid domani andiamo insieme all'esame della Rescigno?
__________________
Cancellato stare lucido dal mio vocabolario -Speaker Cenzou-
Bahamut Zero è offline   Rispondi citando il messaggio o parte di esso
Old 25-04-2006, 19:46   #7
andbin
Senior Member
 
L'Avatar di andbin
 
Iscritto dal: Nov 2005
Messaggi: 5206
Quote:
Originariamente inviato da Bahamut Zero
Oppid domani andiamo insieme all'esame della Rescigno?
Della serie ... "come è piccolo il mondo".
__________________
Andrea, Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
Java Versions Cheat Sheet

Ultima modifica di andbin : 25-04-2006 alle 20:08.
andbin è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2006, 00:37   #8
rdefalco
Senior Member
 
L'Avatar di rdefalco
 
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
Quote:
Originariamente inviato da andbin
Della serie ... "come è piccolo il mondo".
qui in sezione programmazione ne vengono spesso di colleghi miei di studio...

EDIT: oltretutto suggerirei, quando capita, di scriverlo che si tratta di un esercizio di esame. Anche a me è capitato di vedere richieste alquanto "bizzarre" che diventano "normali" viste in un ottica di esame. Almeno si capisce che è un problema da spiegare e NON da risolvere...
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2006, 10:25   #9
Oppid
Senior Member
 
Iscritto dal: Mar 2005
Città: Salerno
Messaggi: 477
Quote:
Originariamente inviato da Bahamut Zero
Oppid domani andiamo insieme all'esame della Rescigno?
ahuahuahuahuahuahuaahu.....con Abate cmq!
__________________
Felice di aver trascorso la mia adolescenza con winning eleven Toshiba A500-14F
Oppid è offline   Rispondi citando il messaggio o parte di esso
Old 26-04-2006, 16:53   #10
rdefalco
Senior Member
 
L'Avatar di rdefalco
 
Iscritto dal: Feb 2005
Città: Napoli (provincia)
Messaggi: 2372
tutto fatto!
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
Oracle AI World 2026: in Europa prima la sovranità, poi la sicurezza e solo dopo l'IA Oracle AI World 2026: in Europa prima la sovrani...
Anthropic porta i conti bancari in chat:...
WhatsApp porta Extend su iOS: l'IA allar...
'È impossibile': gli scienziati r...
Apple Watch, arrivano le funzioni AI più...
Su Alpine si può entrare senza password:...
BYD Yangwang U9 Xtreme supera i 500 km/h...
Pochi ma buoni: ecco i coupon nascosti A...
Sui deepfake più recenti gli umani tiran...
APT, chi manipola il traffico HTTP può o...
Samsung aggiorna il Privacy Display dei ...
L'India vuole la sua GPU per ritagliarsi...
Switch Zyxel, l’exploit degli aggressori...
Sony BRAVIA 6 OLED da 65 pollici in offe...
Un invito di Google Calendar può rubare ...
Sony riporta in vita le cuffie del primo...
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: 10:55.


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