리눅스 내장 명령어를 system이나 popen으로 사용할수 없나요?

middlism의 이미지

안녕하세요.

반갑습니다.

엊그제, 프로그램상에서 리눅스 명령을 실행시키고 그 결과를 받아보는 질문을 그렸는데, popen이라는 유용한 함수가 있더군요.

가르쳐 주신분께 다시 감사드립니다.

근데 또 한가지 문제가 생겼습니다.

윈도우에서 리눅스 명령어들을 스크립트 형태로 만들어서 리눅스에 전송해 주면, 리눅스에서 그것을 실행하고 결과를

다시 윈도우로 전송하는 프로그램을 만들려고 하는데요. 물론 전송은 소켓을 사용하구요.

문제는 cd같은 내장 명령어들은 system이나 popen으로 실행시킬 수가 없네요.

그럼 이런 내장 명령어들을 모두 고려해서, 각각 동일한 기능을 하는 함수들을 짜줘야 한다는건가요?

popen처럼 쉬운 방법은 없겠습니까?

익명사용자의 이미지

chdir(), mkdir() 등등의 함수들도 존재합니다만..
이런함수의 사용은 원하시는 프로그램의 동작과는 거리가 있을듯하군요..

아예 전송받은 스크립트를 통째로 파일에 저장한 뒤에 그 스크립트 파일을 실행하는편이 나을지도..

jachin의 이미지

리눅스 머신에 해당 명령어를 전송하는 형태의 프로그램이라면,

충분히 터미널 프로그램으로도 가능하지 않을까요?

아니면 리눅스 서버와 윈도우즈 클라이언트 간에 통신이 가능한 형태로

프로그래밍 하시면 될 듯 싶은데요...
====
( - -)a 이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

freedom의 이미지

저의 경우 cd 같은 명령어의 경우 ,

소스 상에서는 위엣 분 말씀대로 chdir(), mkdir() 등을 이용해서 현재 프로그램의

작업 디렉터리가 변경됩니다. (변경우 system("pwd") 로 확인)

그렇기 때문에 cd 변경 디렉터리의 경우

cd 문자 이후의 값을 파싱해서 cddir()등의 함수를 이용한다면 쉽게 만드실수 있을듯 합니다.

근데 저도 바로 윗분말씀대로 프로그램을 짜고 싶었는데 내공 부족으로..^^;;

마잇의 이미지

cd는 쉘(bash)의 내장 명령어 입니다.

$ type cd

type도 내장 명령어네요.

쉘 스크립트를 파일로 저장해서 실행 권한을 주고 실행 시키면 원하시는 결과를 얻으실 수도 있을것 같은데 cd 같은 경우는 각 언어별로 대응하는 무엇이 존재할테니 cd 만이라면 그다지 좋은 방법은 아닐 것 같습니다.

--
마잇


--
마잇

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <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].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.