_chmod, _wchmod
Altera as configurações de permissão do arquivo.
int _chmod(
const char *filename,
int pmode
);
int _wchmod(
const wchar_t *filename,
int pmode
);
Parâmetros
filename
Nome do arquivo existente.pmode
Configuração de permissão para o arquivo.
Valor de retorno
Essas funções retornam 0 se a configuração de permissão é alterada com êxito.Um valor de retorno de – 1 indica falha.Se o arquivo especificado não pôde ser encontrado, errno for definido como ENOENT; Se um parâmetro é inválido, errno for definido como EINVAL.
Comentários
O _chmod função altera a configuração de permissão do arquivo especificado por filename*.* A configuração de permissão controla o acesso de leitura e gravação ao arquivo.A expressão de inteiro pmode contém uma ou ambas das seguintes constantes manifesto, definidas em SYS\Stat.h.
_S_IWRITE
Permissão de escrita._S_IREAD
Permissão de leitura._S_IREAD | _S_IWRITE
Permissão de leitura e gravação.
Quando as duas constantes forem fornecidas, elas se unem com o bit a bit OR (operador |).Se a permissão de gravação não for fornecido, o arquivo é somente leitura.Observe que todos os arquivos estão sempre legíveis; não é possível conceder a permissão somente para gravação.Assim, os modos de _S_IWRITE e _S_IREAD | _S_IWRITE são equivalentes.
_wchmodé uma versão de caractere largo de _chmod; o filename argumento para _wchmod é uma seqüência de caracteres largos._wchmode _chmod tenham comportamento idêntico caso contrário.
Esta função valida seus parâmetros.Se pmode não é uma combinação de uma das constantes manifesto ou incorpora um conjunto alternativo de constantes, a função simplesmente ignora aqueles.Se filename é NULL, o manipulador de parâmetro inválido é invocado, conforme descrito em Validação de parâmetro.Se a execução terá permissão para continuar, errno for definido como EINVAL e a função retornará -1.
Mapeamentos de rotina de texto genérico
Rotina de TCHAR.h |
_ Unicode e _ MBCS do arquivo não definido |
_ MBCS do arquivo definido |
_ Unicode definido |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Requisitos
Rotina |
Cabeçalho necessário |
Cabeçalho opcional |
---|---|---|
_chmod |
<io.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
_wchmod |
<io.h> ou <wchar.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
Para obter mais informações de compatibilidade, consulte compatibilidade na introdução.
Exemplo
// 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 " );
}
Uma linha de texto.
A line of text. Modo definido como somente leitura Acesso negado. Modo definido para leitura/gravação.
Equivalência do .NET Framework
Consulte também
Referência
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32