Freigeben über


_chmod, _wchmod

Ändert die DateiBerechtigungseinstellungen.

int _chmod(  
   const char *filename, 
   int pmode  
); 
int _wchmod(  
   const wchar_t *filename, 
   int pmode  
);

Parameter

  • filename
    Name der vorhandenen Datei.

  • pmode
    Berechtigungseinstellung für die Datei.

Rückgabewert

Diese Funktionen geben 0 zurück, wenn die Berechtigungseinstellung erfolgreich geändert wird. Ein Rückgabewert von 1 gibt einen Fehler an. Wenn die angegebene Datei nicht gefunden werden konnte, wird errno auf ENOENT festgelegt; Wenn ein Parameter nicht gültig ist, wird errno auf EINVAL festgelegt.

Hinweise

Die _chmod, welche Funktion änder die Berechtigungseinstellung der Datei durch filename angegeben . Die Berechtigungseinstellung steuert den Lese- und Schreibzugriff auf die Datei. Der ganzzahlige Ausdruck pmode enthält eine oder beide der folgenden Manifestkonstanten, die in SYS\Stat.h.

  • _S_IWRITE
    Schreiben zulässig.

  • _S_IREAD
    Lesen zulässig.

  • _S_IREAD | _S_IWRITE
    Lesen und Schreiben zulässig.

Wenn beide Konstanten angegeben werden, sind sie mit dem bitweisen Operator OR verknüpft ( |). Wenn Schreibberechtigung nicht angegeben wird, ist die Datei schreibgeschützt. Beachten Sie, dass alle Dateien immer Lesbarkeit sind; es ist nicht möglich, lesegeschützte Berechtigung zu geben. Daher spielt die Modi _S_IWRITE und _S_IREAD | _S_IWRITE.

_wchmod ist eine Breitzeichenversion von _chmod. Das filename-Argument für _wchmod ist eine Breitzeichenfolge. _wchmod und _chmod verhalten sich andernfalls identisch.

Diese Funktion überprüft ihre Parameter. Wenn pmode keine Kombination einer Manifestkonstanten ist oder einen alternative Konstanten enthält, ignoriert die Funktion einfach die. Wenn filename den Wert NULL annimmt, wird der ungültige Parameterhandler, wie in Parametervalidierung beschrieben, aufgerufen. Wenn die Ausführung zulässig ist, um fortzufahren, wird errno auf EINVAL und Funktionsrückgaben -1 festgelegt.

Zuordnung generischer Textroutinen

Tchar.h-Routine

_UNICODE und _MBCS nicht definiert

_MBCS definiert

_UNICODE definiert

_tchmod

_chmod

_chmod

_wchmod

Anforderungen

Routine

Erforderlicher Header

Optionaler Header

_chmod

<io.h>

<sys/types.h, sys></stat.h, errno.h><>

_wchmod

<io.h oder> wchar.h <>

<sys/types.h, sys></stat.h, errno.h><>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.

Beispiel

// 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 " ); 
} 
  Eine Textzeile. 

FakePre-d9a892f27a7a49a4b499e3bc5a4f2ef9-1b36d193ac6c4030b2be743a26138816

.NET Framework-Entsprechung

Siehe auch

Referenz

Dateibehandlung

_access, _waccess

_creat, _wcreat

_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32

_open, _wopen

_stat- und _wstat-Funktionen