다음을 통해 공유


_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
    읽기 및 쓰기를 허용 합니다.

두 상수를 지정 하는 경우 and로 조인 된 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.
모드를 읽기 전용으로 설정
액세스가 거부된 경우
읽기/쓰기로 설정 모드

해당 .NET Framework 항목

참고 항목

참조

파일 처리

_access, _waccess

_creat, _wcreat

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, _wstat 함수