su gnu/linux usa la chiamata di sistema
ssize_t read(int fd, void *buf, size_t count);
fd è il descrittore, metti stdin
buf è il buffer
count il numero di carattere, puoi mettere 1 per leggere un carattere alla volta
ciao
sergio
su gnu/linux usa la chiamata di sistema
ssize_t read(int fd, void *buf, size_t count);
fd è il descrittore, metti stdin
buf è il buffer
count il numero di carattere, puoi mettere 1 per leggere un carattere alla volta
ciao
sergio
wow questo read ha ottimizzato il programmaOriginariamente inviato da mondobimbi
su gnu/linux usa la chiamata di sistema
ssize_t read(int fd, void *buf, size_t count);
fd è il descrittore, metti stdin
buf è il buffer
count il numero di carattere, puoi mettere 1 per leggere un carattere alla volta
ciao
sergio![]()
ma ho un dubbio...questo pezzo di codice mi stampa una stringa e poi uso read ma a quanto sembra nn mi stampa la stringa :master:
codice:cout<<path+":"; read(1,buf,256);
ciaocodice:char buffer[max_buffer]; read (stdin, buffer, max_buffer]; // la stringa la ho in buffer cout << buffer ; /* tuttavia se vuoi controllare le freccette devi leggere un carattere alla volta per poterlo fare */
perché se metto stdin cm parametro ho questo errore?
/home/giordano/progettone/terminale.cpp:20: error: invalid conversion from ‘_IO_FILE*’ to ‘int’
/home/giordano/progettone/terminale.cpp:20: error: initializing argument 1 of ‘ssize_t read(int, void*, size_t)’
ragazzi ho un altro dubbio:
io ho una variabile chiamata path in cui memorizzo il risultato di getcwd ma se io ad esempio uso il comando cd e quindi mi sposto in un'altra directory cosa uso per ottenere il nuovo path?
metti pure il descrittore di file, ma mi sembra che sia lo 0 per stdin, 1 per stdout e 2 per stderr.
ciao