Elikkäs.
Minulla on tehtynä ohjelma. Sitä saa ajaa kuka haluaa (siis linuksissa ollaan). Mutta miten saisin tiedot ylös, että kuka ajaa ohjelmaa?
Ajattelin, että laittaisin tyyliin
system("komento joka näyttää käyttäjän ja veisi tiedot tiedostoon");
Olisiko linux tietämystä, että millainen komento tuohon sopisi ?
whoami > filu
Tietty jossain APIssa saattaa olla joku funkkari, jolla tuon saa ilman tiedostokierrätystäkin, mut whoami:n manuaalisivulla ei lue, ja googlettaa osaat sinä ihan yhtä hyvin kuin minäkin.
kiitoksia Blaze.
Käyttäjän id:n saa getuid()-funktiolla, nimen ja muuta tietoa sisältävän struktin taas antamalla saadun id:n getpwuid()-funktiolle. Lisätietoa man-sivuilta.
(Minähän en tätä tiennyt ennen kuin äsken otin selvää, RTFM auttaa aina :)
EDIT: Yksinkertainen esimerkki:
#include <unistd.h> #include <stdio.h> #include <pwd.h> int main (int argc, char *argv[]) { printf("%s\n", getpwuid(getuid())->pw_name); return 0; }
Aihe on jo aika vanha, joten et voi enää vastata siihen.