| 
 | |||||||
| 
 | 
|  | 
|  | 
|  | Strumenti | 
|  03-08-2013, 11:56 | #1 | 
| Member Iscritto dal: May 2008 Città: Torino (TO) 
					Messaggi: 237
				 | 
				
				[C] Replicare i permessi di un file
			 
		Visto che continuano a propinarmi esercizi con la stessa richiesta e visto che non so proprio dove sbattere la testa chiedo umilmente il vostro aiuto.    La traccia è la seguente: Sia File1 un file lungo 6 byte. Scrivere un programma C che accoda il contenuto di File1 a File2, ricevendo da linea di comando i nomi dei file File1 e File2, dove 1) se File2 esiste allora viene accodato a File2 il contenuto di File1, 2) se invece File2 non esiste allora File2 viene prima creato con gli stessi permessi di File1 e dopo avviene l’accodamento. Come risolvereste il secondo punto? Cioè come faccio a creare un file con gli stessi permessi di un file già esistente? Grazie mille a chi saprà illuminarmi  . 
				__________________ Microsoft Windows 10 Pro - Fractal Design Define R2 XL - Enermax Platimax 750W - MSI X99S GAMING 9 AC - Noctua NH-D15 - Intel Core i7-5820k - MSI GTX 970 GAMING 4G - 16 GB RAM Corsair Vengeance LPX DDR4 2400Mhz - Samsung 850 Evo 500GB - ASUS PB728QR - Tastiera Ducky Shine 4 - Mouse Logitech G700s | 
|   |   | 
|  03-08-2013, 13:14 | #2 | 
| Senior Member Iscritto dal: Jul 2011 
					Messaggi: 381
				 | 
		Ciao, per verificare se un file esiste dai un'occhiata alla funzione access() Moooolto grezzamente: Codice: if( access( fname, F_OK ) == 0 )
 {
   //file esiste
 } 
else 
 {
   //crea file
   //controlla se hai creato
   //apri, scrivi, chiudi
 }Su Windows non ti so aiutare. 
				__________________ Concluso positivamente con: Kamzata, Ducati82, Arus, TheLastRemnant, ghost driver, alexbull1, DanieleRC5, XatiX | 
|   |   | 
|  03-08-2013, 15:25 | #3 | 
| Member Iscritto dal: May 2008 Città: Torino (TO) 
					Messaggi: 237
				 | 
		Ho risolto con stat   . Codice: #include <sys/stat.h>
#include <stdio.h>
int main()
{
     struct stat buffer;
     mode_t file1_mode;
     if(stat("FILE1",&buffer) != 0)
     {printf("stat error!\n"); return -1;}
     file1_mode = buffer.st_mode;
     umask(file1_mode);
}
				__________________ Microsoft Windows 10 Pro - Fractal Design Define R2 XL - Enermax Platimax 750W - MSI X99S GAMING 9 AC - Noctua NH-D15 - Intel Core i7-5820k - MSI GTX 970 GAMING 4G - 16 GB RAM Corsair Vengeance LPX DDR4 2400Mhz - Samsung 850 Evo 500GB - ASUS PB728QR - Tastiera Ducky Shine 4 - Mouse Logitech G700s | 
|   |   | 
|   | 
| Strumenti | |
| 
 | 
 | 
Tutti gli orari sono GMT +1. Ora sono le: 04:06.









 
		 
		 
		 
		






 
  
 



 
                        
                        










