共用方式為


_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 " ); 
} 
  某行的文字。

FakePre-560baed0827245579d1baa6d0683fe65-9faf801dfd6947bfabab046a14d144b4

.NET Framework 對等用法

請參閱

參考

檔案處理

_access _waccess

_creat _wcreat

_fstat、 _fstat32、 _fstat64、 _fstati64、 _fstat32i64、 _fstat64i32

_open _wopen

_stat,_wstat 函式