|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 2438
|
nn riesco a fare questo prog
nn capisco cosa ci sia che nn vada mi serve il vostro aiuto:
devo fare un prog che mi trovi queste info da linux nella dir /proc, e un banalissimo prog che apre un file che si chiama /proc/uptime xò nn riesco a farlo andare vi posto il listato: #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #define MAXBUFFER 80 int main(int argc, char *argv[]) { FILE *fd; //int letti,fd; char buffer[MAXBUFFER], repTypeName[16]; //strcpy(repTypeName,"STANDARD"); //apertura file fd = open("/proc/uptime",O_RDONLY); if (fd == -1) { printf("errore apertura file\n"); exit(-1); } //ciclo di lettura file while(!eof(fd)) { read(fd,buffer,MAXBUFFER); printf("%s\n", buffer); } }
__________________
ho trattato con: Tandoi1, ziodamerica, enrico84, peppecbr, crl, M@t |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fai almeno questa correzione:
letti = read(fd,buffer,MAXBUFFER-1); buffer[letti] ='\0'; |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Mar 2002
Messaggi: 2438
|
sono riuscito a correggere il fatto è che nn sono abituato ad usare read e write con i file e diversamente da altre funzioni richiedono restituiscono un intero invece che il puntatore al file stava li il mio errore.
adesso ho questo problema dove devo usare la funzione gettimeofday come faccio a stampare il valore che restituisce con printf???? cosa devo usare %s, %d?????? cosa nn lo so. sapete mica indicarmi un sito dove ci stanno tutte le varie funzioni in c e relative spiegazioni???
__________________
ho trattato con: Tandoi1, ziodamerica, enrico84, peppecbr, crl, M@t |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao Edit: Il codice puo essere migliorato un po se ci guardi molte cose non servono. Codice:
#include <fcntl.h>
#define BUFFER_LEN 80
int main (int argc, char **argv)
{
int fd, letti = 0;
char buff[BUFFER_LEN];
if ((fd = open ("/proc/uptime", O_RDONLY)) < 0) {
printf ("bum !");
exit (-1);
}
while ((letti = read (fd, buff, BUFFER_LEN)) > 0)
write (0, buff, letti);
}
Ultima modifica di VICIUS : 27-04-2005 alle 20:44. |
|
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Jun 2002
Città: Dublin
Messaggi: 5989
|
Quote:
E con i files non ci lavoro molto.
__________________
C'ho certi cazzi Mafa' che manco tu che sei pratica li hai visti mai! |
|
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
Quote:
se non sbaglio: 0 Standard Input; 1 Standard Output; 2 Standard Error; probabilmente, se non ho capito male il codice nella write bisognava mettere 1 al posto dello 0. |
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Oct 2001
Messaggi: 11471
|
Quote:
ciao |
|
|
|
|
|
|
#10 |
|
Senior Member
Iscritto dal: Jan 2004
Città: ROMA
Messaggi: 2055
|
eheh... a volte capita!!! CiaoCiao! |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:52.




















