Fungsi Fstat di C

Fungsi Fstat Di C



Fungsi fstat() memanggil sistem untuk mengembalikan informasi (mengenai beberapa file) yang bergantung pada deskriptor file itu. Fungsi ini memperoleh informasi untuk file yang terkait dengan deskriptor file yang juga dikenal sebagai 'fildes' dan kemudian menulis informasi ini di lokasi memori yang ditunjuk buffer. Tipe kembalian dari fungsi ini adalah bilangan bulat. Ini mengembalikan nilai '0' jika program berhasil dijalankan. Jika tidak, ia mengembalikan '-1' ke fungsi jika eksekusi gagal. Kesalahan eksekusi untuk fungsi ini dapat disebabkan oleh beberapa alasan tertentu seperti jika file fungsi memiliki deskriptor yang tidak valid untuk file, jika kesalahan membaca untuk input dan output terjadi dari file, dan jika lokasi memori (struktur) di mana buffer menunjuk untuk menulis informasi file tidak memiliki cukup memori yang dialokasikan untuk ukuran file.

Prosedur

Artikel ini mengikuti urutan untuk mengimplementasikan fungsi fstat() untuk mendapatkan informasi file. Pertama-tama kita mempelajari sintaks untuk fungsi ini, parameter yang diperlukan untuk fungsi ini. Kemudian, kita menggunakan sintaks ini untuk mengeksekusi beberapa contoh fungsi fstat().







Sintaksis

Metode untuk mendeklarasikan fungsi fstat() yang memungkinkan akses program ke informasi file disebutkan di baris berikut:



$ #sertakan
$ ke dalam negara ( ke dalam fildes , struktur status * buf ) ;

Setiap kali kita harus memanggil fungsi dalam program kita, kita harus mengimpor file header terlebih dahulu yang mendukung fungsi ini sebagai 'sys/stat.h'. Tipe kembalian untuk fungsi selalu “int” dan parameternya termasuk “fildes” dengan tipe data “int”. Fildes adalah deskriptor untuk file yang ingin kita ketahui informasinya. Parameter lain yang diberikan ke fungsi adalah pointer 'buf'. Ini adalah pointer 'struct stat' yang menunjuk ke struktur tempat kita ingin menyimpan data tentang file tersebut. Ini adalah deskripsi singkat tentang parameter input untuk fungsi fstat().



Contoh

Kami menggunakan deskripsi yang disebutkan sebelumnya dan menjalankan program untuk mendapatkan informasi tentang file / file tertentu melalui program kami. Kami menulis program ini di kompiler Microsoft Visual Studio C untuk eksekusi. Kita mulai dengan contoh dengan membuat proyek terlebih dahulu dan kemudian menambahkannya ke repositori C di Visual Studio. Untuk menambahkan proyek ke file C, kami menyertakan '.c' dengan nama proyek dan menambahkannya ke file sumber proyek. Langkah selanjutnya setelah pembuatan proyek adalah memanggil semua pustaka yang diperlukan untuk fungsi yang mungkin kita gunakan nanti dalam program. Karena kita mengimplementasikan contoh untuk fungsi fstat() dalam artikel ini, kita harus menyertakan file header “sys/ stat.h “. Untuk informasi file, kita perlu mengetahui jenis perangkat tempat file tersebut berada. Untuk mengetahui tipe data perangkat, kami menyertakan header “type. h” dalam program.





Informasi file harus menyertakan waktu terakhir file dibuka dan modifikasi yang dilakukan di dalamnya. Untuk mengakses fungsi pemanggilan waktu ini, kita tambahkan file header “times. h' dan 'fcntl. h” untuk fungsi izin file. Header terakhir “stdio. h” juga disertakan dalam program untuk memanggil metode printf() dan scanf() dalam program. File header yang kita bahas untuk dimasukkan ke dalam program adalah sebagai berikut:

$ #sertakan
$ #sertakan
$ #sertakan
$ #sertakan
$ #sertakan

Setelah file header yang disebutkan sebelumnya berhasil diimpor ke dalam program, sekarang kita membangun program untuk mendapatkan informasi tentang file tertentu. Kami mendeklarasikan fungsi yang memiliki tipe pengembalian sebagai 'int' dengan nama 'main'. Ke dalam fungsi utama ini, kita mendeklarasikan array 'char' dan menetapkannya sebagai nama file yang perlu kita ketahui informasinya. Kemudian, kami mendefinisikan 'informasi stat' dengan tipe data 'struct'. struct ini adalah tempat kita menyimpan informasi tentang file.



Kemudian, kita mendefinisikan variabel lain dengan nama “file_descriptor” dengan tipe data sebagai “integer”. Dalam 'kondisi if', kami meminta izin untuk operasi baca dan tulis untuk file jika ada, meneruskan 'S_IWUSR' dan nama array ke fungsi 'create()' yang memanggil izin untuk file jika itu ada atau buat file baru jika tidak. Kami meneruskan fungsi create() ini ke 'kondisi if' yang menyatakan jika nilai fungsi create() kurang dari nol maka akan membuat kesalahan bahwa file perlu dibuat. Jika fstat() dengan parameter sebagai “file_descriptor” dan “informasi” dan “alamat lokasi penyimpanan informasi file” tidak sama dengan nol, kami menampilkan nilai kembalian fstat() yang merupakan informasi file . Dan kami mencetak informasi dalam bentuk atribut, mis. id perangkat tempat file disimpan, nomor Inode perangkat, mode perlindungan file, id pengguna, id grup, dan nomor tautan (bentuk keras).

Setelah menampilkan atribut ini, kami keluar dari pernyataan dan menutup file menggunakan metode close(). Kemudian, batalkan tautan file dengan memanggil metode unlink().

#sertakan
#sertakan
#sertakan
#sertakan
#sertakan

utama ( ) {
arang Himpunan [ ] = 'amp.file' ;
struktur informasi statistik ;
ke dalam deskriptor file ;
jika ( ( deskriptor file = dibuat ( Himpunan , S_IWUSR ) ) < 0 )
kesalahan ( 'buat () kesalahan' ) ;
kalau tidak {
jika ( negara ( deskriptor file , & informasi ) != 0 )
kesalahan ( 'fstat() kesalahan' ) ;
kalau tidak {
menempatkan ( 'fstat() nilai:' ) ;
printf ( ' inode: %d \n ' , ( ke dalam ) info. st_ino ) ;
printf ( ' device_id: %d \n ' , ( ke dalam ) info. st_dev ) ;
printf ( ' mode perangkat: %08x \n ' , info. st_mode ) ;
printf ( ' no_of_hard_links: %d \n ' , info. st_nlink ) ;
printf ( ' u_id: %d \n ' , ( ke dalam ) info. st_uid ) ;
printf ( ' g_id: %d \n ' , ( ke dalam ) info. st_gid ) ;
}
menutup ( deskriptor file ) ;
putuskan tautan ( Himpunan ) ;
}
}

Program pertama-tama akan mengakses izin untuk operasi file dan kemudian membaca data di dalamnya dan menulisnya di lokasi memori yang dialokasikan. Atribut yang kami berikan kepada program untuk ditampilkan dari file ditampilkan di output.

Kesimpulan

Kami menggunakan fungsi fstat() untuk mengakses informasi file. Kami pertama kali mempelajari sintaks untuk fungsi fstat() yang dijelaskan dengan deskripsi lengkap tentang parameter fungsi. Kemudian, kami menulis program untuk fungsi ini di mana kami pertama kali mengakses izin pemilik file kami dan kemudian membaca file dan menampilkan atribut yang kami inginkan dari informasi file. Kami mencoba yang terbaik untuk membuat Anda memahami konsep fstat() dan kami berharap ini akan membantu Anda dalam program Anda.