Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Dapatkan Direktori Laman Utama Pengguna dalam Linux/Unix tanpa Menggunakan Pembolehubah Persekitaran HOME?

Bagaimana untuk Dapatkan Direktori Laman Utama Pengguna dalam Linux/Unix tanpa Menggunakan Pembolehubah Persekitaran HOME?

Barbara Streisand
Barbara Streisandasal
2024-10-27 09:20:30795semak imbas

How to Retrieve the User Home Directory in Linux/Unix without Using the HOME Environment Variable?

Cara Memperoleh Direktori Laman Utama Pengguna dalam Linux/Unix

Untuk aplikasi C yang dijalankan pada sistem Linux, direktori rumah pengguna boleh diambil tanpa penggunaan pembolehubah persekitaran HOME. Berikut ialah penyelesaian yang selaras dengan keperluan ini:

Untuk mendapatkan direktori rumah, ikut langkah berikut:

  1. Dapatkan ID Pengguna: Gunakan fungsi getuid untuk mendapatkan semula ID pengguna (UID) pengguna yang sedang menjalankan program.
  2. Dapatkan Kemasukan Kata Laluan: Gunakan fungsi getpwuid untuk mendapatkan entri kata laluan yang dikaitkan dengan UID yang diambil. Entri ini termasuk maklumat direktori rumah.

Kod Contoh:

<code class="cpp">#include <unistd.h> // for getuid
#include <sys/types.h> // for getpwuid
#include <pwd.h> // for getpwuid

struct passwd *pw = getpwuid(getuid());
const char *homedir = pw->pw_dir;</code>

Kini, pembolehubah homedir menyimpan laluan ke direktori rumah pengguna.

Nota untuk Pengguna Root:

Apabila program berjalan sebagai pengguna root, secara amnya dianggap tidak selamat untuk mencipta fail atau folder dalam direktori /root. Sebaliknya, anda disyorkan untuk membuat direktori khusus dalam /root untuk menyimpan data atau log berkaitan program.

Atas ialah kandungan terperinci Bagaimana untuk Dapatkan Direktori Laman Utama Pengguna dalam Linux/Unix tanpa Menggunakan Pembolehubah Persekitaran HOME?. 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