hard coded: 특정 위치에 파일을 읽어 들일 적에

bus710의 이미지

제가 pc 프로그래밍을 해 본적이 없어놔서... 문득 책을 읽다 보니 궁금한게 생기네요^^

1. 어떤 프로그램을 작성했을 때 그 프로그램의 결과물로 매개 변수를 담은 파일이 하드 디스크에 저장된다고 가정합니다.

2. 그 파일이 /home/anonymous/ 에 생성되었고 이름이 newnew.txt 라고 하겠습니다.

그 프로그램이 새로 시작되어 초기화 시에 파일을 읽어 들인다고 쳤을 때.... 무조건 /home/anonymous 를 읽어 들일 수도 있겠습니다만 세상사 프로그래머 뜻대로 되지 않기에 파일이 이동을 할 수도 있지 않겠습니까?

그럴 경우 치명적인 에러를 피하고 정상적인 동작을 하기 위해서 있을만한 곳을 다 뒤져봐야 할 것 같은데.... 찾는 작업을 최소화 하기 위해서는 어떤 방법이 적절할까요?

전처리기로 있을만한 곳을 미리 다 명시해 놓는게 좋을까요?
소프트 링크를 응용해서 파일 하나쯤 없어지더라도 그 전에 작성해 놓은 파일을 읽도록 하는게 좋을까요?

궁금합니다!! 도와주세요~ 척척박사님~

hys545의 이미지

akudoku wrote:
제가 pc 프로그래밍을 해 본적이 없어놔서... 문득 책을 읽다 보니 궁금한게 생기네요^^

1. 어떤 프로그램을 작성했을 때 그 프로그램의 결과물로 매개 변수를 담은 파일이 하드 디스크에 저장된다고 가정합니다.

2. 그 파일이 /home/anonymous/ 에 생성되었고 이름이 newnew.txt 라고 하겠습니다.

그 프로그램이 새로 시작되어 초기화 시에 파일을 읽어 들인다고 쳤을 때.... 무조건 /home/anonymous 를 읽어 들일 수도 있겠습니다만 세상사 프로그래머 뜻대로 되지 않기에 파일이 이동을 할 수도 있지 않겠습니까?

그럴 경우 치명적인 에러를 피하고 정상적인 동작을 하기 위해서 있을만한 곳을 다 뒤져봐야 할 것 같은데.... 찾는 작업을 최소화 하기 위해서는 어떤 방법이 적절할까요?

전처리기로 있을만한 곳을 미리 다 명시해 놓는게 좋을까요?
소프트 링크를 응용해서 파일 하나쯤 없어지더라도 그 전에 작성해 놓은 파일을 읽도록 하는게 좋을까요?

궁금합니다!! 도와주세요~ 척척박사님~


파일이 있나 체크하게 하는게 좋을듯한데여.
업으면 에러네거나 다시 만들ㄷ르ㅗㄷㄱ 하고

즐린

ssehoony의 이미지

저같은 경우는 있을 만한 경로 몇개를 미리 하드코딩으로 등록해서 찾아보고 없음 에러 내는 방법을 사용했습니다.

근데 윈도우를 보면 바로가기에 링크걸린 녀석이 없으면 하드 전체를 검색하더군요. 이런 방법도 사용자 입장에서는 좋을 수 있을 듯 하네요. (일단 편하자나요. ^^ 프로그램이 알아서 하니깐)

bus710의 이미지

ssehoony wrote:
저같은 경우는 있을 만한 경로 몇개를 미리 하드코딩으로 등록해서 찾아보고 없음 에러 내는 방법을 사용했습니다.

러닝 리눅스에 그런 구절이 나오기도 했고..

어떤 프로그램은 제작자가 지정한 위치에 설치해야만 정상적으로 동작하는게 있어서 올려 봤습니다.

그게 정상이라고 생각될 수도 있지만 (윈도우즈에서) 많은 어플리케이션들이 거의 "아무데나" 설치해도 제대로 동작하는게 은근히 어려운게 아닐까 하는 생각이 들었습니다.

life is only one time

chronon의 이미지

정해진 위치에 파일이 없으면 디폴트 값으로 새로운 파일을 만들어 주는 것이 서로서로 좋지 않을까요?

하드 전체를 뒤져서 파일을 찾아주는 건 친절함이 지나친 것 아닐까 합니다.
가끔 디폴트 설정으로 되돌리고 싶어서 파일을 딴데 옮겨놓는 짓도 많이 하거든요.

ssehoony의 이미지

akudoku wrote:
(윈도우즈에서) 많은 어플리케이션들이 거의 "아무데나" 설치해도 제대로 동작하는게

윈도우의 경우 레지스트리라는 공용이 있어서 여기에 어디에 설치가 되었는지 정보를 기록하기 때문에 그걸 참고해서 작동하니깐 가능하죠.
결국 유닉스 계열에서 conf 파일이 없는거나 윈도에서 레지스트리에 정보가 기록되어 있지 않은 거랑 비슷하죠.

그래서 윈도용 프로그램중에 대다수가 그냥 복사를 해서를 작동하지 않고 install 을 해야하는 이유지요.

댓글 달기

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