Всегда так делаю.
Просто внутри функции что-то типа return $user['id']; Конечно, там нет ошибок.
А вот хер там. Оно по разному. В GNU/HURD вот так:
/* Get the real user ID of the calling process. */
uid_t
__getuid (void)
{
error_t err;
uid_t uid;
HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_id.lock);
if (err = _hurd_check_ids ())
{
errno = err;
uid = -1;
}
else if (_hurd_id.aux.nuids >= 1)
uid = _hurd_id.aux.uids[0];
else
{
/* We do not even have a real uid. */
errno = EGRATUITOUS;
uid = -1;
}
__mutex_unlock (&_hurd_id.lock);
HURD_CRITICAL_END;
return uid;
}
А в Linux - системный вызов
uid_t getuid(void)
{
return syscall0(LINUX_SYS_getuid);
}
/* Get the real user ID of the calling process. */
uid_t
__getuid (void)
{
error_t err;
uid_t uid;
HURD_CRITICAL_BEGIN;
__mutex_lock (&_hurd_id.lock);
if (err = _hurd_check_ids ())
{
errno = err;
uid = -1;
}
else if (_hurd_id.aux.nuids >= 1)
uid = _hurd_id.aux.uids[0];
else
{
/* We do not even have a real uid. */
errno = EGRATUITOUS;
uid = -1;
}
__mutex_unlock (&_hurd_id.lock);
HURD_CRITICAL_END;
return uid;
}
А в Linux - системный вызов
uid_t getuid(void)
{
return syscall0(LINUX_SYS_getuid);
}
Чтобы написать коммент, необходимо залогиниться