Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dosya izni ayarlarını değiştirir.
Sözdizimi
int _chmod( const char *filename, int pmode );
int _wchmod( const wchar_t *filename, int pmode );
Parametreler
filename
Var olan dosyanın adı.
pmode
Dosya için izin ayarı.
Dönüş değeri
İzin ayarı başarıyla değiştirilirse bu işlevler 0 döndürür. -1 dönüş değeri hataya işaret eder. Belirtilen dosya bulunamadıysa olarak errno ayarlanır ENOENT; parametre geçersizse olarak errno ayarlanır EINVAL.
Açıklamalar
İşlev, _chmod tarafından filenamebelirtilen dosyanın izin ayarını değiştirir. İzin ayarı, dosyaya okuma ve yazma erişimini denetler. Tamsayı ifadesi pmode , SYS\Stat.h içinde tanımlanan aşağıdaki bildirim sabitlerinden birini veya her ikisini içerir.
pmode |
Anlamı |
|---|---|
_S_IREAD |
Yalnızca okuma izni verilir. |
_S_IWRITE |
Yazma izni verilir. (Aslında, okuma ve yazma izin verir.) |
_S_IREAD | _S_IWRITE |
Okuma ve yazma izin verilir. |
Her iki sabit de verildiğinde bit düzeyinde veya işleciyle (|) birleştirilir. Yazma izni verilmezse, dosya salt okunurdur. Tüm dosyaların her zaman okunabilir olduğunu unutmayın; yalnızca yazma izni vermek mümkün değildir. Bu nedenle, ve _S_IREAD | _S_IWRITE modları _S_IWRITE eşdeğerdir.
_wchmod , öğesinin _chmodgeniş karakterli bir sürümüdür; filename bağımsız değişkeni _wchmod geniş karakterli bir dizedir. _wchmod ve _chmod aksi takdirde aynı şekilde davran.
Bu işlev parametrelerini doğrular. Bildirim sabitlerinden birinin birleşimi değilse veya alternatif bir sabit kümesine sahipse pmode işlev bunları yoksayar. ise filename NULL, parametre doğrulamasında açıklandığı gibi geçersiz parametre işleyicisi çağrılır. Yürütmenin devam etmesi için izin verilirse, errno olarak ayarlanır EINVAL ve işlevi -1 döndürür.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bunu değiştirmek için bkz . CRT'de Genel durum.
Genel metin yordamı eşlemeleri
| Tchar.h yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
|---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Gereksinimler
| Yordam | Gerekli başlık | İsteğe bağlı üst bilgi |
|---|---|---|
_chmod |
<io.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
_wchmod |
<io.h> veya <wchar.h> | <sys/types.h>, <sys/stat.h>, <errno.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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.
A line of text.Mode set to read-only
Access is denied.
Mode set to read/write
Ayrıca bkz.
Dosya işleme
_access, _waccess
_creat, _wcreat
_fstat, _fstat32, _fstat64, , _fstati64, _fstat32i64, _fstat64i32
_open, _wopen
_stat, _wstat işlevler