리눅스 내장 명령어를 system이나 popen으로 사용할수 없나요?
글쓴이: middlism / 작성시간: 일, 2007/01/14 - 3:55오후
안녕하세요.
반갑습니다.
엊그제, 프로그램상에서 리눅스 명령을 실행시키고 그 결과를 받아보는 질문을 그렸는데, popen이라는 유용한 함수가 있더군요.
가르쳐 주신분께 다시 감사드립니다.
근데 또 한가지 문제가 생겼습니다.
윈도우에서 리눅스 명령어들을 스크립트 형태로 만들어서 리눅스에 전송해 주면, 리눅스에서 그것을 실행하고 결과를
다시 윈도우로 전송하는 프로그램을 만들려고 하는데요. 물론 전송은 소켓을 사용하구요.
문제는 cd같은 내장 명령어들은 system이나 popen으로 실행시킬 수가 없네요.
그럼 이런 내장 명령어들을 모두 고려해서, 각각 동일한 기능을 하는 함수들을 짜줘야 한다는건가요?
popen처럼 쉬운 방법은 없겠습니까?
Forums:
chdir(), mkdir() 등등의
chdir(), mkdir() 등등의 함수들도 존재합니다만..
이런함수의 사용은 원하시는 프로그램의 동작과는 거리가 있을듯하군요..
아예 전송받은 스크립트를 통째로 파일에 저장한 뒤에 그 스크립트 파일을 실행하는편이 나을지도..
왠지 터미널이 생각나는 이유는 뭘까요?
리눅스 머신에 해당 명령어를 전송하는 형태의 프로그램이라면,
충분히 터미널 프로그램으로도 가능하지 않을까요?
아니면 리눅스 서버와 윈도우즈 클라이언트 간에 통신이 가능한 형태로
프로그래밍 하시면 될 듯 싶은데요...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.
저도 비슷한 프로그램을 해봤습니다.
저의 경우 cd 같은 명령어의 경우 ,
소스 상에서는 위엣 분 말씀대로 chdir(), mkdir() 등을 이용해서 현재 프로그램의
작업 디렉터리가 변경됩니다. (변경우 system("pwd") 로 확인)
그렇기 때문에 cd 변경 디렉터리의 경우
cd 문자 이후의 값을 파싱해서 cddir()등의 함수를 이용한다면 쉽게 만드실수 있을듯 합니다.
근데 저도 바로 윗분말씀대로 프로그램을 짜고 싶었는데 내공 부족으로..^^;;
cd는 쉘(bash)의 내장
cd는 쉘(bash)의 내장 명령어 입니다.
$ type cd
type도 내장 명령어네요.
쉘 스크립트를 파일로 저장해서 실행 권한을 주고 실행 시키면 원하시는 결과를 얻으실 수도 있을것 같은데 cd 같은 경우는 각 언어별로 대응하는 무엇이 존재할테니 cd 만이라면 그다지 좋은 방법은 아닐 것 같습니다.
--
마잇
--
마잇
댓글 달기