CIFS: UNC Path does not begin with // or \\ |
execl("/bin/mount", "mount", "-t","cifs", resolv_urn, mount_point, "-o", option, NULL);
일단 resol_urn의 내용은
커맨드 라인상으로는
mount -t cifs //servernam/sharename 혹은
mount -t cifs "//servernam/share name" 혹은
으로 실행이 되는데, execl 에서
sprintf(resolv_urn, "\"//%s/%s\"", servername, sharename);
로 하니 위와 같은 에러가 난다.
곰곰히 생각해보니..
execl() 에서 인자로 넘기는 하나하나에는 공백이 들어가도 상관이 없다!!!
그게 무슨 말이냐면은, 공백까지 인식을 시키기 위해서 " "를 사용하는 것인데
execl() 자체에 들어가는 인자는 이러한 것을 인식한 것이기 때문에
굳이 \" \" 를 써가면서 문자열 내에 " "를 넣을 필요가 없는 것이다.
결론은
sprintf(resolv_urn, "//%s/%s", servername, sharename);
이런 식으로 urn을 입력해주면 상황끝!
'Linux' 카테고리의 다른 글
설치하지 않은 rpm에 포함된 파일의 내용 보기 (0) | 2009.11.04 |
---|---|
mount() 이용하기 - mount cifs using mount() (2) | 2009.10.22 |
gnash - GNU SWF player (0) | 2009.09.23 |
/ 는 root // 는? (0) | 2009.09.22 |
User Mode Linux - UML (0) | 2009.09.15 |