Linux2009.10.14 15:20
 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' 카테고리의 다른 글

mount() 이용하기 - mount cifs using mount()  (2) 2009.10.22
iperf - 대역폭 측정  (0) 2009.10.22
execl()로 mount 실행하기 - samba  (2) 2009.10.14
gnash - GNU SWF player  (0) 2009.09.23
/ 는 root // 는?  (0) 2009.09.22
User Mode Linux - UML  (0) 2009.09.15
Posted by 구차니

댓글을 달아 주세요

  1. 심마니

    구차니님.. 대단해요~~~
    컴퓨터관련해서 궁금한건 다 구차니님의 블로그에 다 있군요...
    감사드립니다...

    2011.05.29 12:42 신고 [ ADDR : EDIT/ DEL : REPLY ]

Linux2009.08.07 16:08
머.. 스크립트라고 해서 다를 건 없었다.

그냥 execl("경로 + 파일명", "파일명", "인자1", ... , NULL);

예를 들어
/root/test.sh를 실행하고 eth0 down 이라는 인자가 필요 하다면

execl("/root/test.sh", "test.sh", "eth0", "down", NULL);
이렇게 하면된다.



참 쉽죠잉?

[링크 : http://www.gnu.org/software/libc/manual/html_node/Process-Creation-Example.html]
[링크 : http://www.opengroup.org/onlinepubs/009695399/functions/exec.html]
신고
Posted by 구차니

댓글을 달아 주세요

  1. 궁금

    옵션 처리는 어떻게 하죠? -rf 이런거요

    2010.11.30 18:45 신고 [ ADDR : EDIT/ DEL : REPLY ]
    • 스페이스로 구분되는 모든 내용은
      별도의 " "으로 넣어 주시면 됩니다.

      grep -rf는
      execl("/bin/grep", "grep", "-rf", NULL);
      이런식으로 해주시면 되겠습니다.

      2010.11.30 21:18 신고 [ ADDR : EDIT/ DEL ]