_chmod, _wchmod
Ändert die FILEBerechtigung Einstellungen.
int _chmod(
const char *filename,
int pmode
);
int _wchmod(
const wchar_t *filename,
int pmode
);
Parameter
filename
Name der vorhandenen Datei.pmode
Einstellung für Berechtigungen für die Datei.
Rückgabewert
Diese Funktionen geben 0 zurück, wenn die Einstellung der Berechtigung erfolgreich geändert wurde.Ein Rückgabewert von 1 gibt Fehler an.Wenn die angegebene Datei nicht gefunden werden kann, wird errno zu ENOENTfestgelegt. Wenn ein Parameter nicht gültig ist, wird errno zu EINVALfestgelegt.
Hinweise
Die Funktion _chmod Änderungen, die die Einstellung für die Berechtigungen der Datei durch filenameangegeben hat*.* Die Einstellung für die Berechtigungen steuert den Lese- und Schreibzugriff auf die Datei.Der ganzzahlige Ausdruck pmode enthält eine oder beide der folgenden Manifesten Konstanten, definiert in SYS \ Stat.h.
_S_IWRITE
Schreiben zulässig._S_IREAD
Lesevorgänge zulässig._S_IREAD | _S_IWRITE
Lese- und Schreibvorgänge nicht zulässig.
Wenn beide Konstanten angegeben sind, werden sie mit dem bitweisen Operator verknüpft ( OR|).Wenn die Schreibberechtigung nicht angegeben ist, ist die Datei schreibgeschützt.Beachten Sie, dass alle Dateien immer lesbar sind. Es ist nicht möglich, lesegeschützte Berechtigung zu gewähren.Daher sind die Modi _S_IWRITE und _S_IREAD | _S_IWRITE .
_wchmod ist eine Breitzeichen-Version von _chmod. filename das Argument zu _wchmod ist eine Zeichenfolge mit Breitzeichen._wchmod und _chmod verhalten sich ansonsten unterscheiden.
Diese Funktion überprüft seine Parameter.Wenn pmode keine Kombination von einer der Manifesten Konstanten oder einen Satz von Alternativen Konstanten enthält, ignoriert die Funktion einfach die.Wenn filenameNULLungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierungbeschrieben.Wenn die Ausführung zulässig ist, um fortzufahren, wird errno zu EINVAL festgelegt, und die Funktion gibt -1 zurück.
Zuweisung generischer Textroutinen
Tchar.h-Routine |
_UNICODE als auch _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_tchmod |
_chmod |
_chmod |
_wchmod |
Anforderungen
Routine |
Erforderlicher Header |
Optionaler Header |
---|---|---|
_chmod |
<io.h> |
<sys/types.h> und <sys/stat.h> <errno.h> |
_wchmod |
<io.h> oder <wchar.h> |
<sys/types.h> und <sys/stat.h> <errno.h> |
Weitere Informationen finden Sie unter Kompatibilität 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.
Eine Textzeile. Modus als schreibgeschützt festgelegt Zugriff wird verweigert. Modus festgelegt auf den Lese-/Schreibzugriff
.NET Framework-Entsprechung
Siehe auch
Referenz
_fstat, _fstat32, _fstat64, _fstati64, _fstat32i64, _fstat64i32