다음을 통해 공유


_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의 와이드 문자 버전이며, _wchmod의 filename 인수는 와이드 문자 문자열입니다. _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> or <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 " ); 
} 
  텍스트의 줄

FakePre-8f11f747e5ae47469bc68f203d1a73a8-c932993b3c35447889855aed9a0fbfb4

해당 .NET Framework 항목

참고 항목

참조

파일 처리

_access, _waccess

_creat, _wcreat

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat, _wstat 함수