_umask_s
Mengatur masker izin file default. Versi _umask
dengan peningkatan keamanan seperti yang dijelaskan dalam Fitur keamanan di CRT.
Sintaks
errno_t _umask_s(
int mode,
int* pOldMode
);
Parameter
mode
Pengaturan izin default.
pOldMode
Nilai sebelumnya dari pengaturan izin.
Nilai hasil
Mengembalikan kode kesalahan jika mode
tidak menentukan mode yang valid atau pOldMode
penunjuknya adalah NULL
.
Kondisi kesalahan
mode |
pOldMode |
Nilai hasil | Isi dari pOldMode |
---|---|---|---|
any | NULL |
EINVAL |
tidak dimodifikasi |
mode tidak valid | any | EINVAL |
tidak dimodifikasi |
Jika salah satu kondisi di atas terjadi, handler parameter yang tidak valid dipanggil, seperti yang dijelaskan dalam Validasi parameter. Jika eksekusi diizinkan untuk melanjutkan, _umask_s
mengembalikan EINVAL
dan mengatur errno
ke EINVAL
.
Keterangan
Fungsi ini _umask_s
mengatur masker izin file dari proses saat ini ke mode yang ditentukan oleh mode
. Masker izin file memodifikasi pengaturan izin file baru yang dibuat oleh _creat
, _open
, atau _sopen
. Jika sedikit dalam masker adalah 1, bit yang sesuai dalam nilai izin yang diminta file diatur ke 0 (tidak diizinkan). Jika sedikit di masker adalah 0, bit yang sesuai dibiarkan tidak berubah. Pengaturan izin untuk file baru tidak diatur hingga file ditutup untuk pertama kalinya.
Ekspresi mode
bilangan bulat berisi satu atau kedua konstanta manifes berikut, yang ditentukan dalam SYS\STAT.H
:
mode |
Deskripsi |
---|---|
_S_IWRITE |
Penulisan diizinkan. |
_S_IREAD |
Membaca diizinkan. |
_S_IREAD | _S_IWRITE |
Membaca dan menulis diizinkan. |
Ketika kedua konstanta diberikan, konstanta tersebut digabungkan dengan operator bitwise-OR ( |
). mode
Jika argumen adalah _S_IREAD
, membaca tidak diperbolehkan (file hanya tulis). mode
Jika argumen adalah _S_IWRITE
, penulisan tidak diizinkan (file bersifat baca-saja). Misalnya, jika bit tulis diatur dalam mask, file baru apa pun akan bersifat baca-saja. Dalam MS-DOS dan sistem operasi Windows, semua file dapat dibaca; tidak dimungkinkan untuk memberikan izin tulis-saja. Oleh karena itu, mengatur bit baca dengan _umask_s
tidak berpengaruh pada mode file.
Jika mode
bukan kombinasi dari salah satu konstanta manifes atau menggabungkan sekumpulan konstanta alternatif, fungsi akan mengabaikannya.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubahnya, lihat Status global di CRT.
Persyaratan
Function | Header yang diperlukan |
---|---|
_umask_s |
<io.h> dan dan <sys/stat.h> <sys/types.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_umask_s.c
/* This program uses _umask_s to set
* the file-permission mask so that all future
* files will be created as read-only files.
* It also displays the old mask.
*/
#include <sys/stat.h>
#include <sys/types.h>
#include <io.h>
#include <stdio.h>
int main( void )
{
int oldmask, err;
/* Create read-only files: */
err = _umask_s( _S_IWRITE, &oldmask );
if (err)
{
printf("Error setting the umask.\n");
exit(1);
}
printf( "Oldmask = 0x%.4x\n", oldmask );
}
Oldmask = 0x0000
Baca juga
Penanganan file
I/O tingkat rendah
_chmod
, _wchmod
_creat
, _wcreat
_mkdir
, _wmkdir
_open
, _wopen
_umask
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk