Bir Sürecin Aidiyetinin Okunması
Önceki XXIX. Oylum - Kullanıcılar ve Gruplar Sonraki
Bir Sürecin Aidiyetinin Okunması
Bu kısımda bir sürecin gerçek ve etkin,kullanıcı ve grup kimliklerinin öğrenilmesinde kullanılan işlevlerin ayrıntılı açıklamalarını bulacaksınız. Bu oluşumları kullanabilmek için sys/types.h ve unistd.h başlık dosyalarını yazılımınıza dahil etmeniz gerekir.
uid_t
veri türü
Kullanıcı kimliğini ifade etmek için kullaılan bir tamsayı veri türüdür. GNU kütüphanesinde bu veri türü unsigned int'e eşdeğerdir.
gid_t
veri türü
Grup kimliğini ifade etmek için kullaılan bir tamsayı veri türüdür. GNU kütüphanesinde bu veri türü unsigned int'e eşdeğerdir.
uid_t getuid
(void)
işlev
getuid işlevi sürecin gerçek kullanıcı kimliği ile döner.
gid_t getgid
(void)
işlev
getgid işlevi sürecin gerçek grup kimliği ile döner.
uid_t geteuid
(void)
işlev
geteuid işlevi sürecin etkin kullanıcı kimliği ile döner.
gid_t getegid
(void)
işlev
getegid işlevi sürecin etkin grup kimliği ile döner.
int getgroups
(int    miktar,
 gid_t *gruplar)
işlev
getgroups işlevi sürecin ek grupları hakkında bilgi almak için kullanılır. Bu grup kimliklerinin en çok miktar kadarı gruplar dizisine kaydedilir; işlevin dönüş değeri işlev tarafından elde edilebilen grup kimliklerinin sayısı olur. Eğer miktar ek grup kimliklerinin sayısından küçükse, işlev -1 değeri ile döner ve errno değişkenine EINVAL atanır.
Eğer miktar sıfırsa, getgroups işlevi ek grup kimliklerin toplam sayısı ile döner. Ek grupları desteklemeyen sistemlerde bu daima sıfır olacaktır.
getgroups işlevinin ek grup kimliklerini öğrenmek için kullanılışına bir örnek:
gid_t *
read_all_groups (void)
{
  int ngroups = getgroups (0, NULL);
  gid_t *groups
    = (gid_t *) xmalloc (ngroups * sizeof (gid_t));
  int val = getgroups (ngroups, groups);
  if (val < 0)
    {
      free (groups);
      return NULL;
    }
  return groups;
}
Önceki Üst Ana Başlık Sonraki
Bir Sürecin Aidiyeti Nasıl Değiştirilir? Başlangıç Kullanıcı Kimliğinin Belirtilmesi
Bir Linux Kitaplığı Sayfası