_chmod
, _wchmod
Modifica le impostazioni di autorizzazione file.
Sintassi
int _chmod( const char *filename, int pmode );
int _wchmod( const wchar_t *filename, int pmode );
Parametri
filename
Nome del file esistente.
pmode
Impostazione di autorizzazione per il file.
Valore restituito
Queste funzioni restituiscono 0 se l'impostazione di autorizzazione viene modificata. Il valore restituito -1 indica un errore. Se non è stato possibile trovare il file specificato, errno
è impostato su ENOENT
. Se un parametro non è valido, errno
è impostato su EINVAL
.
Osservazioni:
La _chmod
funzione modifica l'impostazione di autorizzazione del file specificato da filename
. L'impostazione di autorizzazione controlla l'accesso in lettura e scrittura al file. L'espressione Integer pmode
contiene una o entrambe le seguenti costanti manifesto, definite in SYS\Stat.h.
pmode |
significato |
---|---|
_S_IREAD |
Solo lettura consentita. |
_S_IWRITE |
Scrittura consentita. (In effetti, consente la lettura e la scrittura) |
_S_IREAD | _S_IWRITE |
Lettura e scrittura consentite. |
Quando vengono date entrambe le costanti, vengono unite con l'operatore bit per bit o (|
). Se non viene concessa l'autorizzazione di scrittura, il file è di sola lettura. Si noti che tutti i file sono sempre leggibili; non è possibile concedere l'autorizzazione di sola scrittura. Di conseguenza, le modalità _S_IWRITE
e _S_IREAD | _S_IWRITE
sono equivalenti.
_wchmod
è una versione a caratteri wide di _chmod
; l'argomento filename
in _wchmod
è una stringa di caratteri wide. In caso contrario,_wchmod
e _chmod
si comportano in modo identico.
Questa funzione convalida i relativi parametri. Se pmode
non è una combinazione di una delle costanti manifesto o incorpora un set alternativo di costanti, la funzione li ignora semplicemente. Se filename
è NULL
, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno
viene impostato su EINVAL
e la funzione restituisce -1.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificarlo, vedere Stato globale in CRT.
Mapping di routine di testo generico
Routine Tchar.h | _UNICODE e _MBCS non definito |
_MBCS definito |
_UNICODE definito |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Requisiti
Ciclo | Intestazione obbligatoria | Intestazione facoltativa |
---|---|---|
_chmod |
<io.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
_wchmod |
<io.h> o <wchar.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Esempio
// crt_chmod.c
// This program uses _chmod to
// change the mode of a file to read-only.
// It then attempts to modify the file.
//
#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
// Change the mode and report error or success
void set_mode_and_report(char * filename, int mask)
{
// Check for failure
if( _chmod( filename, mask ) == -1 )
{
// Determine cause of failure and report.
switch (errno)
{
case EINVAL:
fprintf( stderr, "Invalid parameter to chmod.\n");
break;
case ENOENT:
fprintf( stderr, "File %s not found\n", filename );
break;
default:
// Should never be reached
fprintf( stderr, "Unexpected error in chmod.\n" );
}
}
else
{
if (mask == _S_IREAD)
printf( "Mode set to read-only\n" );
else if (mask & _S_IWRITE)
printf( "Mode set to read/write\n" );
}
fflush(stderr);
}
int main( void )
{
// Create or append to a file.
system( "echo /* End of file */ >> crt_chmod.c_input" );
// Set file mode to read-only:
set_mode_and_report("crt_chmod.c_input ", _S_IREAD );
system( "echo /* End of file */ >> crt_chmod.c_input " );
// Change back to read/write:
set_mode_and_report("crt_chmod.c_input ", _S_IWRITE );
system( "echo /* End of file */ >> crt_chmod.c_input " );
}
A line of text.
A line of text.Mode set to read-only
Access is denied.
Mode set to read/write
Vedi anche
Gestione dei file
_access
, _waccess
_creat
, _wcreat
_fstat
, _fstat32
, _fstat64
, _fstati64
, _fstat32i64
_fstat64i32
_open
, _wopen
_stat
, _wstat
funzioni