Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura
Il primo Micro RGB di Samsung per il salotto è il 65 pollici da 2.749 euro. Sul banco di misura abbiamo rilevato 2.000 nit di picco, nero assoluto con il local dimming e il 91,4% del BT.2020, il colore più ampio che abbiamo misurato su un LCD
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre
Apple ha rinnovato iPhone 18 Pro soprattutto dentro: chip A20 Pro a 2 nm con memoria affiancata al SoC, camera di vapore tre volte più ampia, Dynamic Island più piccola del 25% grazie a Face ID sotto il display e fotocamera principale con diaframma variabile da f/1.48 a f/4. Lo abbiamo misurato al colorimetro e nei benchmark, usato con iOS 27 e messo alla prova in fotografia tra laghi, borghi e interni poco illuminati
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34
A Londra, per il trentennale dei Toughbook, Panasonic ha presentato il tablet G3 e il 2-in-1 34. Con Jon Tucker, a capo dell'ingegneria europea, abbiamo parlato di ciò che non si vede: batterie, antenne, porte seriali e accorgimenti nati sul campo
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 24-06-2008, 13:57   #1
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
[C unix] file

Buon pomeriggio a tutti,
ho bisogno di un aiutino per una prima parte di un programma in cui dopo aver ricercato l'estensione passata in input rispetto alla cartella il cui nome è sulla riga di comando, mi si chiede di verificare i diritti di lettura per altri e la dimensione.

Il problema è che cosi' come segue dal codice, in output non mi vengono calcolate bene le dimensioni (cioè mi esce sempre 0) e anche i permessi risultano sempre, cioè anche se da shell con chmod cambio il permesso, ottengo sempre lo stesso output...Qual è il problema allora??

Codice:
int main(int argc, char *argv[])
{
	DIR *dp;
	struct stat st;
	struct dirent *drn;	
	char nomefile[255];
	int sizeminima=0;
	if(argc!=3)
	{
		printf("Errore nell'utilizzo del programma <./Trova> <ext> <directory>\n");
		exit(-1);
	}
	if((dp=opendir(argv[2]))!=NULL)
	{
		while((drn=readdir(dp))!=NULL)
		{
		
			if(strstr(drn->d_name,argv[1]))
			{
				printf("File %s\n",drn->d_name);
				//Verificare i diritti di lettura per altri
				strcpy(nomefile,drn->d_name);
				stat(nomefile,&st);
				if(st.st_mode & S_IROTH)
				{
					printf("Il file %s ha il permesso di lettura per altri\n",nomefile);
					//stat(nomefile,&st);
					//mi esce dimensione 0
					printf("Il file %s ha dimensione %ld\n",nomefile,st.st_size);
				}
			}
			
		}
	}
	closedir(dp);
	
	
}
Sarei grata per l'aiuto...grazie in anticipo
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2008, 14:02   #2
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Il nome della direntry è sempre relativo alla directory che lo contiene. Devi aggiungerci il prefisso della directory.

Un semplice
Codice:
if (stat(nomefile, &st)<0)
  perror(nomefile);
ti avrebbe immediatamente indirizzato al problema.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2008, 14:18   #3
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da ilsensine Guarda i messaggi
Il nome della direntry è sempre relativo alla directory che lo contiene. Devi aggiungerci il prefisso della directory.

Come...?
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2008, 14:26   #4
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Quote:
Originariamente inviato da stella_650 Guarda i messaggi
Come...?
snprintf(nomefile, sizeof(nomefile), "%s/%s", argv[2], drn->d_name);

Però c'è un modo migliore: fstatat. E' una funzione non standard, ma linux la dovrebbe avere.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2008, 14:39   #5
stella_650
Member
 
Iscritto dal: Dec 2006
Messaggi: 104
Quote:
Originariamente inviato da ilsensine Guarda i messaggi
snprintf(nomefile, sizeof(nomefile), "%s/%s", argv[2], drn->d_name);

Però c'è un modo migliore: fstatat. E' una funzione non standard, ma linux la dovrebbe avere.
poikè non ho mai usato questa funzione, nel mio codice in che modo poi dovrei usarla?grazie
stella_650 è offline   Rispondi citando il messaggio o parte di esso
Old 24-06-2008, 14:46   #6
ilsensine
Senior Member
 
L'Avatar di ilsensine
 
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
Se sei su linux dovresti avere le manpage:
man fstatat
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al
andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12
ilsensine è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Samsung Micro RGB R95H, il primo LCD a LED rossi, verdi e blu di Samsung alla prova del banco di misura Samsung Micro RGB R95H, il primo LCD a LED rossi...
iPhone 18 Pro: la recensione del miglior iPhone compatto di sempre iPhone 18 Pro: la recensione del miglior iPhone ...
Panasonic, 30 anni di Toughbook: la "Bibbia" di mille regole dietro i nuovi G3 e 34 Panasonic, 30 anni di Toughbook: la "Bibbia...
realme C100x, lo smartphone economico con la batteria da 7500 mAh. La recensione realme C100x, lo smartphone economico con la bat...
Star Wars Zero Company è l'erede di XCOM 2 Star Wars Zero Company è l'erede di XCOM ...
Hyundai IONIQ 3: l'abbiamo guidata per l...
Ricarica wireless dinamica fino a 150 kW...
Troppi report invalidi generati dall'IA:...
Furto di identità su scala nazion...
HPE vende i primi sistemi AMD Helios per...
Suno AI nel mirino dell'Antitrust: conte...
Xiaomi avrebbe cancellato il suo prossim...
WINDTRE BUSINESS rinnova l’offerta mobil...
BMW inaugura la fabbrica di batterie da ...
Googlebook apre al modding: bootloader s...
Denuvo non molla, vuole scoprire chi &eg...
Il miglior portatile tuttofare a basso p...
Gli agenti di OpenAI hanno mandato in ti...
Follie Amazon Prime: Zenbook è un...
MicroSD SanDisk in offerta Prime Day: Ul...
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: 04:14.


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