Bugs item #1750013, was opened at 2007-07-08 22:02 Message generated for change (Comment added) made by loewis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1750013&group_id=5470
Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: None Group: None >Status: Closed >Resolution: Invalid Priority: 5 Private: No Submitted By: Serge Noiraud (snoiraud) Assigned to: Nobody/Anonymous (nobody) Summary: os.getlogin should use the DISPLAY and not the tty Initial Comment: Hi, I have the following with gramps on kubuntu ( KDE ). My terminals are "konsole". They don't register their pty in utmp and I think they are correct. We are already logged. so if we register again for each konsole, we have a bad user count. In these case, os.getlogin() return : OSError: [Errno 2] No such file or directory I think getlogin should use the DISPLAY instead of the tty when we get this error. to correct this problem I use : try: user=os.getlogin() except: user=os.environ.get("USER") but I'm not sure os.environ.get return the good value on every OSes ... I have tested too : except: user = pwd.getpwuid(os.getuid())[0] What is the best solution to this problem. I looked at all bugs about getlogin and I saw we should avoid this function. What is in this case the function we should use and which works correctly on every OS ( Linux, Unices, Windows, MAC OS/X, ... ) ---------------------------------------------------------------------- >Comment By: Martin v. Löwis (loewis) Date: 2007-07-10 10:45 Message: Logged In: YES user_id=21627 Originator: NO os.getlogin is a wrapper around the getlogin(3) POSIX function. It is important that Python exposes the function as-is, rather than trying to be more clever than the operating system designers. getlogin(3) is specified as "getlogin() returns a pointer to a string containing the name of the user logged in on the controlling terminal of the process, or a null pointer if this information cannot be determined." See the man page for the precise list of error conditions; ENOENT is returned if there is no utmp entry. Whether konsole is correct in not listing the controlling terminal in utmp, I don't know. Notice that xterm (which should be considered an authority in such matters) *does* create an utmp entry. It's not clear to me how DISPLAY could be used at all, but even if it could, using it here would be incorrect. Closing as invalid. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1750013&group_id=5470 _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com