コード例 #1
0
ファイル: getlogin.c プロジェクト: AhmadTux/freebsd-ports
static char *
getlogin_basic(int *status)
{
	static char logname[MAXLOGNAME];

	if (_logname_valid == 0) {
#ifdef __NETBSD_SYSCALLS
		if (__getlogin(logname, sizeof(logname) - 1) < 0) {
#else
		if (_getlogin(logname, sizeof(logname)) < 0) {
#endif
			*status = errno;
			return (NULL);
		}
		_logname_valid = 1;
	}
	*status = 0;
	return (*logname ? logname : NULL);
}

char *
getlogin(void)
{
	char	*result;
	int	status;

	THREAD_LOCK();
	result = getlogin_basic(&status);
	THREAD_UNLOCK();
	return (result);
}
コード例 #2
0
ファイル: getlogin.c プロジェクト: rmascarenhas/lpi
int
main() {
	char *login;

	if ((login = _getlogin()) == NULL)
		pexit("_getlogin");

	printf("%s\n", login);
	exit(EXIT_SUCCESS);
}
コード例 #3
0
ファイル: getlogin.c プロジェクト: aunali1/exopc
char *
getlogin()
{
	static char logname[MAXLOGNAME + 1];

	if (__logname_valid == 0) {
		if (_getlogin(logname, sizeof(logname) - 1) < 0)
			return ((char *)NULL);
		__logname_valid = 1;
	}
	return (*logname ? logname : (char *)NULL);
}
コード例 #4
0
ファイル: getlogin.c プロジェクト: NanXiao/illumos-joyent
char *
getlogin()
{
	char *lgn;

	if ((lgn = (char *)_getlogin()) == NULL) {
		struct passwd *pwd;
		if ((pwd = (struct passwd *)_getpwuid(_getuid())) != NULL)
			return (pwd->pw_name);
	}
	return (lgn);
}
コード例 #5
0
ファイル: getlogin.c プロジェクト: AhmadTux/freebsd
static char *
getlogin_basic(int *status)
{
	static char logname[MAXLOGNAME];

	if (_logname_valid == 0) {
		if (_getlogin(logname, sizeof(logname)) < 0) {
			*status = errno;
			return (NULL);
		}
		_logname_valid = 1;
	}
	*status = 0;
	return (*logname ? logname : NULL);
}
コード例 #6
0
ファイル: getlogin.c プロジェクト: mikekmv/aeriebsd-src
int
getlogin_r(char *name, size_t namelen)
{
	int logname_size;

	_THREAD_PRIVATE_MUTEX_LOCK(logname);
	if (!logname_valid) {
		if (_getlogin(logname, sizeof(logname) - 1) < 0) {
			_THREAD_PRIVATE_MUTEX_UNLOCK(logname);
			return errno;
		}
		logname_valid = 1;
		logname[MAXLOGNAME] = '\0';	/* paranoia */
	}
	logname_size = strlen(logname) + 1;
	if (namelen < logname_size) {
		_THREAD_PRIVATE_MUTEX_UNLOCK(logname);
		return ERANGE;
	}
	memcpy(name, logname, logname_size);
	_THREAD_PRIVATE_MUTEX_UNLOCK(logname);
	return 0;
}