[solucionado] libreria para obtener los users de linux?

Iniciado por curiosodigital, 14 Septiembre 2010, 05:28 AM

0 Miembros y 1 Visitante están viendo este tema.

curiosodigital

Hola a todos, e estado buscando una libreria para encontrar los users de una pc en linux.
Y quisiera que me echen una mano, hasta aorita solo e logrado conseguir el usuario loggeado

Código (cpp) [Seleccionar]

#include <unistd.h>
char *a;
a=getlogin();


pero necesito encontrar los demas usuarios almacenados en mi maquina, alguien sabe como hacer esto?
Espero sus ayudas

Foxy Rider

#1
Tenés getpwent(3)
Acá te dejo un ejemplito sin ninguna verificación de errores y demás (lee la manpage)

#include <stdio.h>
#include <sys/types.h>
#include <pwd.h>

int main()
{
    struct passwd* pwdDB = 0; /* Costumbre de inicializar a null ... */

    while(pwdDB = getpwent()) /* Mientras nos de distinto de null */
    {
        printf("Usuario : %s / UID : %u\r\n",pwdDB->pw_name, /* Mostremos Usuario +UID */
                                             pwdDB->pw_uid);
    }

    endpwent(); /* Cerremos cualquier archivo abierto */
    getchar();

    return 0;
}


Saludos.

curiosodigital

Gracias por la respuesta, pero ese programa me devuelve los usuarios, entre otras cosas:

Usuario : root / UID : 0

Usuario : daemon / UID : 1

Usuario : bin / UID : 2

Usuario : sys / UID : 3

Usuario : sync / UID : 4

Usuario : games / UID : 5

Usuario : man / UID : 6

Usuario : lp / UID : 7

Usuario : mail / UID : 8

Usuario : news / UID : 9

Usuario : uucp / UID : 10

Usuario : proxy / UID : 13

Usuario : www-data / UID : 33

Usuario : backup / UID : 34

Usuario : list / UID : 38

Usuario : irc / UID : 39

Usuario : gnats / UID : 41

Usuario : nobody / UID : 65534

Usuario : libuuid / UID : 100

Usuario : syslog / UID : 101

Usuario : messagebus / UID : 102

Usuario : avahi-autoipd / UID : 103

Usuario : avahi / UID : 104

Usuario : couchdb / UID : 105

Usuario : speech-dispatcher / UID : 106

Usuario : usbmux / UID : 107

Usuario : haldaemon / UID : 108

Usuario : kernoops / UID : 109

Usuario : pulse / UID : 110

Usuario : rtkit / UID : 111

Usuario : saned / UID : 112

Usuario : hplip / UID : 113

Usuario : gdm / UID : 114

Usuario : jose / UID : 1000

Usuario : kary / UID : 1001

y realmente solo necesito las ultimas dos lineas... y la primera.... como podria hacer esto?
O es que acaso todos los demás tambien son usuarios o algo asi???

tragantras

todo lo que has puesto son usuarios, si no entiendes el sistema de usuarios de linux, ese es otro tema xD
Colaboraciones:
1 2

curiosodigital

jajajaj... si, ya luego luego, meti eso en google y me entere que eran users igual ;) muchas gracias por la ayuda!
Ahora toca meterlo en jni ¬¬ ... pero eso yo lo hago :) Muchas gracias nuevamente XD