Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica
Il nuovo gimbal mobile DJI evolve il concetto di tracciamento automatico con tre modalità diverse, un modulo multifunzionale con illuminazione integrata e controlli gestuali avanzati. Nel gimbal è anche presente un'asta telescopica da 215 mm con treppiede integrato, per un prodotto completo per content creator di ogni livello
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce
Abbiamo provato il nuovo HUAWEI Pura 80 Pro. Parliamo di uno smartphone che è un vero capolavoro di fotografia mobile, grazie ad un comparto completo in tutto e per tutto, In questa colorazione ci è piaciuto molto, ma i limiti hardware e software, seppur in netto miglioramento, ci sono ancora. Ma HUAWEI ha fatto davvero passi da gigante per questa nuova serie Pura 80. Buona anche l'autonomia e soprattutto la ricarica rapida sia cablata che wireless, velocissima.
Opera Neon: il browser AI agentico di nuova generazione
Opera Neon: il browser AI agentico di nuova generazione
Abbiamo provato il nuovo web browser con intelligenza artificiale della serie Opera accessibile tramite abbonamento. Ecco le nostre prime impressioni sulle funzionalità di Opera Neon basate su AI e come funzionano
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
Città: TO
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, SCJP 5 (91%) - SCWCD 5 (94%)
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: 3903
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
Città: TO
Messaggi: 5206
Quote:
Originariamente inviato da Bahamut Zero
Oppid domani andiamo insieme all'esame della Rescigno?
Della serie ... "come è piccolo il mondo".
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%)

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: 2361
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: 2361
tutto fatto!
__________________
Raffo™ (io, non la birra) | informatica»unisa.it | my terzigno | για να είναι ή για να μην είναι
rdefalco è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DJI Osmo Mobile 8: lo stabilizzatore per smartphone con tracking multiplo e asta telescopica DJI Osmo Mobile 8: lo stabilizzatore per smartph...
Recensione Pura 80 Pro: HUAWEI torna a stupire con foto spettacolari e ricarica superveloce Recensione Pura 80 Pro: HUAWEI torna a stupire c...
Opera Neon: il browser AI agentico di nuova generazione Opera Neon: il browser AI agentico di nuova gene...
Wind Tre 'accende' il 5G Standalone in Italia: si apre una nuova era basata sui servizi Wind Tre 'accende' il 5G Standalone in Italia: s...
OPPO Find X9 Pro: il camera phone con teleobiettivo da 200MP e batteria da 7500 mAh OPPO Find X9 Pro: il camera phone con teleobiett...
1.200 CV e drift a 213 km/h: la supercar...
Shenzhou-21: esperimenti sui topi in orb...
Cloudera punta su cloud privato e intell...
Il mistero del Ryzen 7 9700X3D: prezzo p...
Posticipato il rientro dell'equipaggio c...
Propaganda russa e hactivism fra le prin...
Superluna del Castoro: stasera il satell...
NVIDIA regala una GeForce RTX 5090 Found...
Snowflake punta su Intelligence, l'IA pe...
Volkswagen realizzerà i propri chip per ...
Formula E GEN4 svelata: 600 kW di potenz...
PC Desktop HP Victus con RTX 4060 e Ryze...
Fastnet, il 'mega-cavo' di AWS che pu&og...
Offerte Amazon da non perdere: GeForce R...
Clima, l'UE trova l'accordo sul taglio d...
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: 06:01.


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