|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
Esercizio in C e system call unix
dovrei risolvere questo esercizio in C, mi scrivete una soluzione?
grazie "Prendere un input da tastiera e scaricarlo in FILE1 Copiare in ordine inverso il contenuto di FILE1 in FILE2 utilizzando read e write"
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Roma
Messaggi: 806
|
Perché non provi a buttare giù TU una soluzione e poi vediamo quello che si può fare?
L'esercizio lo devi fare tu, noi possiamo darti sicuramente una mano. Ma addirittura pretendere di risolvertelo..... ![]() O no? |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
#include <sys/types.h>
#include <sys/stat.h> #include <fcntl.h> #include <unistd.h> int main() { int fdin, fdout, n; int c, buf[90]; if((fdin=open("FILE1",O_RDWR|O_CREAT|O_TRUNC,0644))<0) //Crea FILE1 printf("FILE1 open error\n"); //in modalita' read-write if((fdout=open("FILE2",O_CREAT|O_RDWR|O_TRUNC,0644))<0) //Apre il file printf("FILE2 open error\n"); //in cui copiare in modalita' write-only n=read(STDIN_FILENO,buf,90); //leggo da standard input write(fdin,buf,n); //scrivo su FILE1 n=lseek(fdin,-1,SEEK_END); //mi posiziono alla fine di FILE1 while ( n >= 0) { read(fdin, &c, 1); write(fdout, &c, 1); n=lseek(fdin,-2,SEEK_CUR); } lseek(fdout,0,SEEK_SET); while ( read(fdout, &c, 1) > 0) write(STDOUT_FILENO, &c, 1); exit(0); } --------------------------------------------------------------------- ho questa soluzione, ci sono alternative a questa?
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai la firma irregolare... La dimensione massima dell'imamgine è 100x50... Puoi correggere ? Grazie
![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
allora? altre soluzioni?
__________________
![]() ![]() |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Fa esattemente quello che chiedevi...allora è giusta
![]() |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
Quote:
![]() volevo sapere se esistono ALTRE soluzioni
__________________
![]() ![]() |
|
![]() |
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
Potrei scriverti 100 programmi diversi che fanno la stessa cosa, ma si baserebbero sempre sullo stesso principio... |
|
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
Quote:
![]() te ne sarei molto grato... ![]()
__________________
![]() ![]() |
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ma va bene come l'hai scritto tu
![]() ![]() |
![]() |
![]() |
![]() |
#11 | |
Senior Member
Iscritto dal: Feb 2003
Città: Portsmouth - UK
Messaggi: 5385
|
Quote:
scrivere un programma c (myedit.c) che ricevendo in input il nome di un file ed un intero x si comporti nel seguente modo: 1) scriva sullo standart output gli ultimi x byte del file se il file già esiste; altrimenti crei il file con i permessi di accesso 644; 2) legga dallo standard input altri dati che l'utente vuole inserire alla fine e li scriva in tale file
__________________
![]() ![]() |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 17:35.