_chmod, _wchmod
Изменяет параметры разрешений файла.
int _chmod(
const char *filename,
int pmode
);
int _wchmod(
const wchar_t *filename,
int pmode
);
Параметры
filename
Имя существующего файла.pmode
Параметры разрешений для файла.
Возвращаемое значение
Эти функции возвращают значение 0, если параметры разрешений успешно изменены. Возвращаемое значение, равное -1, означает неудачу. Если указанный файл не найден, то errno имеет значение ENOENT; если параметр является недопустимым, то errno имеет значение EINVAL.
Заметки
Функция _chmod изменяет параметры разрешений файла, указанного в filename*.* Параметры разрешений управляют доступом к файлу для чтения и записи. Целочисленное выражение pmode содержит одну или обе следующих константы манифеста, определенных в SYS\Stat.h.
_S_IWRITE
Запись разрешена._S_IREAD
Чтение разрешено._S_IREAD | _S_IWRITE
Чтение и запись разрешены.
Если предоставлены обе константы, они объединяются битовым оператором OR ( |). Если разрешение записи не задано, то файл доступен только для чтения. Обратите внимание, что все файлы всегда доступны для чтения; невозможно предоставить доступ только на запись. Таким образом режимы _S_IWRITE и _S_IREAD | _S_IWRITE эквивалентны.
_wchmod — двухбайтовая версия _chmod; аргумент filename для _wchmod - строка двухбайтовых знаков. В остальных случаях поведение _wchmod и _chmod идентично.
Эта функция проверяет свои параметры. Если pmode - не сочетание одной из констант манифеста, или он содержит другой набор констант, функция просто игнорирует их. Если параметр filename имеет значение NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, errno принимает значение EINVAL, и функция возвращает -1.
Универсальное текстовое сопоставление функций
Подпрограмма Tchar.h |
_UNICODE и _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Требования
Подпрограмма |
Обязательный заголовок |
Необязательный заголовок |
---|---|---|
_chmod |
<io.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
_wchmod |
<io.h> или <wchar.h> |
<sys/types.h>, <sys/stat.h>, <errno.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// 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.
FakePre-a0e30c509038442394d5bade6fab1788-f9567e87515e4065a28387d275a69c69
Эквивалент в .NET Framework
См. также
Ссылки
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32