리눅스C에서 파일실행하는 방법?

black809의 이미지

안녕하세요 리눅스에서C 이용해서 그림파일이나 html을 실행하는 방법에 대해서 알고싶습니다.
리눅스 명령어로 xdg open 등등이 있겠지만 C코드 내에서 경우에 따라서 다른 파일을 실행시키고 싶어서
가능하면 방법을 알고싶습니다 exec함수들은 실행파일에만 사용가능한걸로 알고있는데 exec를 이용해서 그림파일등을 실행하는 방법을 아시는분계시면 조금 구체적으로 설명해주시면 감사하겠습니다.

 의 이미지

전부 직접 만드시기를 원하시는 건가요?
대개의 경우 이런 걸 독자적으로 직접 구현하겠다는 시도는 별로 좋은 생각이 아닐 뿐더러 사용자 입장에서도 괜히 불편하기만 하겠지만, 뭐 꼭 하고 싶으시다면 어쩔 수 없죠.

1. 주어진 파일이 어떤 종류의 파일인지 파악해야지요.

windows에서처럼 파일 이름 뒤의 확장자만 보고 판단할 수도 있고, 뭐 유닉스에는 file 명령어가 있으니까 위임하면 되겠습니다. 그것까지 직접 하고 싶으시면, 각 파일 종류별로 헤더 구조를 조사해서 감지 코드를 작성하시면 되겠지요.

2. 주어진 파일 종류에 대응되는 프로그램을 찾아야 합니다.

이 부분은 어쩔 수 없이 각 파일 종류들에 대한 프로그램들을 모두 어딘가에 저장해 놓는 수밖에 없어요.
windows explorer에서는 이 정보를 레지스트리에 저장하던가요. 아마 xdp-open도 비슷한 방법으로 구현하고 있겠죠.

제대로 만들려면 이 부분은 customize를 지원해야 합니다. emacs 사용자인데 *.c 파일을 열 때 vim으로 열어 주면 화내겠죠. 반대도 마찬가지...

3. 해당 프로그램이 주어진 파일을 열도록 실행하는 방법도 알아야지요.

어지간하면 command line argument로 넘겨주면 될 겁니다. 그래도 가끔 이상한 녀석들이 있을 수도 있죠.

여기까지 되었으면 exec* 함수를 이용해서 실행할 수 있겠네요.

black809의 이미지

감사합니다. 그렇게 만들기에는 너무 복잡하네요 ㅠㅠ 다른방법을 찾아봐야하겠네요

세벌의 이미지

black809의 이미지

감사합니다 gtk로 만드는것도 참고해보겠습니다 !

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.