2009-05-20 7 views
6

So come impostare gli attributi di file su Windows utilizzando la funzione SetFileAttributes. Ma mi chiedo se ci sia una funzione nativa C/C++ in grado di fare anche questo?Impostazione degli attributi del file utilizzando le funzioni native di C/C++

+0

"La funzione nativa C/C++" non è probabilmente quello che stai chiedendo. SetFileAttributes() è una funzione C nativa. Immagino che tu stia cercando una funzione portatile o standardizzata. – JesperE

+0

Una delle motivazioni per linguaggi di scripting come Perl o Python è che fanno il tentativo migliore di fornire un'API multipiattaforma per cose che non sono universalmente multipiattaforma. –

risposta

11

No, non c'è. Né Standard C++ né Standard C specificano tali funzioni.

La ragione di ciò è che in questo settore vi è pochissima commonalit di funzioni in diversi sistemi operativi. Ad esempio, i sistemi di operatimng simili a UNIX hanno un attributo "eseguibile", mentre i sistemi operativi di tipo Windows usano l'estensione del file per determinare l'eseguibilità.

4

Su Windows è presente una funzione _chmod che riproduce il comportamento della funzione chmod su Unix.

4

Se per "nativo", si intende nella libreria standard C, quindi no. Il file "attributi" è un'estensione specifica del sistema operativo, quindi non apparirà in nessun set di funzioni standard. Se siamo disposti ad estendere il nostro mandato a POSIX, ci sono funzioni come fchmod, ma questo tratta solo le modalità di file di stile UNIX, che non sono così espressive come gli attributi di file di Windows.

In generale, è possibile rispondere a qualsiasi domanda del modulo "Esiste una funzione/oggetto STANDARD per fare una cosa OS-SPECIFICA" dicendo "Probabilmente, se STANDARD esiste solo per OS. Altrimenti no".

Problemi correlati