FILE *fp; fp = fopen("~/test.txt","w");
fp = fopen("/home/user/test.txt","w"); 는 제대로 만들어 지구요.
fp = fopen("/home/user/test.txt","w");
프로그램 안에서, 사용자 홈의 절대경로를 알아내는 방법이 있습니까?
원초적인 질문같아 죄송합니다.
struct passwd *getpwnam(const char *name);
struct passwd { char *pw_name; /* user name */ char *pw_passwd; /* user password */ uid_t pw_uid; /* user id */ gid_t pw_gid; /* group id */ char *pw_gecos; /* real name */ char *pw_dir; /* home directory */ char *pw_shell; /* shell program */ };
발 담갔다. 이제 익숙해 지는길만이..
getpwnam()에보면은 pw_dir에서 가져오면 될꺼 같네요..
감사합니다. 좋은 성탄절 되세요.
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
가르쳐주신 대로, getpwnam()을 이용하니 절대경로를 알아낼 수 있었습니다.
그런데, getpwnam은 계정의 ID를 알아야 하더군요.
풀그림의 사용자가 누가될지 모르기 때문에 getpwnam("계정이름") 을
사용하는데 문제가 생기겠네요.
계정 이름을 알아내야 문제가 해결될것 같은데요,
C 프로그램 안에서 현재 사용자의 계정이름을 알아낼 방법좀 가르쳐 주세요.
그냥
/etc/passwd 화일을 열어보시면 어떨까요?
getuid() or geteuid() 으로 사용자 uid 를 구하고, getpwuid() 를 호출하면 원하는 pw_dir 을 구할수 있겠네요.
man getuid getuid returns the real user ID of the current process. geteuid returns the effective user ID of the current process.
환경변수를 이용하시는게 더 편하겠네요.
getenv("HOME");
그럼..
getpwnam(getlogin());
getlogin() 로그인한 사용자의 아이디 리턴...
단, AAA 로 로긴후, su - BBB 를 할 경우, BBB로 실행하면 AAA를 리턴합니다. 이점 주의하세요 ^^ (기억이 맞다면, 맞을겁니다.)
참고 하셔요.
http://bbs.kldp.org/viewtopic.php?t=29117
---http://coolengineer.com
정말 감사합니다. woonuk 님과 preisner 님의 방법으로 모두 성공하였습니다. 이제 어떤걸 쓸지 행복한 고민만 남았네요 ^^;
pynoos 님의 링크를 보니, 며칠전의 내용조차 검색하지 못하고 질문을 올렸군요. 죄송.. 답변주신 모든분들께 감사드립니다.
텍스트 포맷에 대한 자세한 정보
<code>
<blockcode>
<apache>
<applescript>
<autoconf>
<awk>
<bash>
<c>
<cpp>
<css>
<diff>
<drupal5>
<drupal6>
<gdb>
<html>
<html5>
<java>
<javascript>
<ldif>
<lua>
<make>
<mysql>
<perl>
<perl6>
<php>
<pgsql>
<proftpd>
<python>
<reg>
<spec>
<ruby>
<foo>
[foo]
struct passwd *getpwnam(const char *name
struct passwd *getpwnam(const char *name);
발 담갔다. 이제 익숙해 지는길만이..
getpwnam()
getpwnam()에보면은 pw_dir에서 가져오면 될꺼 같네요..
감사합니다. 좋은 성탄절 되세요.
감사합니다. 좋은 성탄절 되세요.
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
임의의 계정인 경우는 어떻게 하죠?
가르쳐주신 대로, getpwnam()을 이용하니 절대경로를 알아낼 수 있었습니다.
그런데, getpwnam은 계정의 ID를 알아야 하더군요.
풀그림의 사용자가 누가될지 모르기 때문에 getpwnam("계정이름") 을
사용하는데 문제가 생기겠네요.
계정 이름을 알아내야 문제가 해결될것 같은데요,
C 프로그램 안에서 현재 사용자의 계정이름을 알아낼 방법좀 가르쳐 주세요.
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
그냥/etc/passwd 화일을 열어보시면 어떨까요?
그냥
/etc/passwd 화일을 열어보시면 어떨까요?
임의계정인경우 사용자 경로
getuid() or geteuid() 으로 사용자 uid 를 구하고,
getpwuid() 를 호출하면 원하는 pw_dir 을 구할수 있겠네요.
환경변수를 이용하시는게 더 편하겠네요.getenv("HOME");
환경변수를 이용하시는게 더 편하겠네요.
getenv("HOME");
그럼..
[code:1]getpwnam(getlogin()&
getpwnam(getlogin());
getlogin() 로그인한 사용자의 아이디 리턴...
단, AAA 로 로긴후, su - BBB 를 할 경우, BBB로 실행하면 AAA를 리턴합니다. 이점 주의하세요 ^^
(기억이 맞다면, 맞을겁니다.)
참고 하셔요.http://bbs.kldp.org/viewtopic
참고 하셔요.
http://bbs.kldp.org/viewtopic.php?t=29117
---
http://coolengineer.com
정말 감사합니다.woonuk 님과 preisner 님의 방법으로 모두
정말 감사합니다.
woonuk 님과 preisner 님의 방법으로 모두 성공하였습니다. 이제 어떤걸 쓸지 행복한 고민만 남았네요 ^^;
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
pynoos 님의 링크를 보니, 며칠전의 내용조차 검색하지 못하고 질문을
pynoos 님의 링크를 보니, 며칠전의 내용조차 검색하지 못하고 질문을 올렸군요. 죄송..
답변주신 모든분들께 감사드립니다.
자유를 꿈꾸는자 고개를 들어 하늘을 보라.
댓글 달기