Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Mengakses Direktori Laman Utama Pengguna dengan Amanah dalam C untuk Linux?

Bagaimana untuk Mengakses Direktori Laman Utama Pengguna dengan Amanah dalam C untuk Linux?

Patricia Arquette
Patricia Arquetteasal
2024-10-29 17:20:02390semak imbas

How to Reliably Access the User's Home Directory in C   for Linux?

Dapatkan Direktori Laman Utama Pengguna dalam Linux

Dalam membangunkan program C untuk Linux, selalunya perlu untuk mengakses laluan direktori rumah pengguna. Walau bagaimanapun, bergantung pada pembolehubah persekitaran HOME tidak disyorkan. Begini cara untuk mendapatkan direktori rumah menggunakan fungsi getpwuid dan getuid:

<code class="c++">#include <unistd.h>
#include <sys/types.h>
#include <pwd.h>

struct passwd *pw = getpwuid(getuid());

const char *homedir = pw->pw_dir;</code>

Fungsi getuid() mendapatkan semula ID pengguna semasa dan getpwuid() menggunakan ID ini untuk mendapatkan kemasukan kata laluan yang sepadan, termasuk laluan direktori rumah pengguna yang disimpan dalam pw->pw_dir. Pendekatan ini berfungsi untuk kedua-dua sistem Linux dan Unix.

Mencipta Fail/Folder dalam Direktori Laman Utama Root

Jika program anda berjalan sebagai pengguna root, elakkan membuat fail/folder dalam direktori rumah akar (/root). Mengubah suai direktori rumah akar biasanya tidak disyorkan, kerana ia boleh menjejaskan kestabilan dan keselamatan sistem. Sebaliknya, pertimbangkan untuk menggunakan direktori khusus yang dibuat khusus untuk kegunaan program anda, seperti /var/[nama-program] atau /opt/[nama-program].

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Direktori Laman Utama Pengguna dengan Amanah dalam C untuk Linux?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn