File operations in Linux

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • kid joe

    File operations in Linux

    Hello all:

    I'm writing a small assembly program that will open a file, process
    it, then close it again. I'm trying to build a simple "framework" for it
    at the moment. I've got the open, close, and exit system calls in place,
    but I think there's something wrong.

    My code is below. It seems to work OK, it just runs silently as given
    below. But if I try it with a non-existent file (e.g. change /dev/zero to
    /dev/zer) then no error message is produced.

    Thanks for any advice!


    section .text

    path db "/dev/zero",0x00

    global _start
    _start:
    mov eax,5 ; open
    mov ebx,path
    xor ecx,ecx ; O_RDONLY
    mov edx,0x100 ; S_IRUSR
    int 0x80

    xchg eax,ebx ; put fd into ebx
    mov eax,6 ; close
    int 0x80

    mov eax,1 ; exit
    int 0x80

  • Antoninus Twink

    #2
    Re: File operations in Linux

    On 26 May 2008 at 10:11, kid joe wrote:
    My code is below. It seems to work OK, it just runs silently as given
    below. But if I try it with a non-existent file (e.g. change /dev/zero
    to /dev/zer) then no error message is produced.
    That's hardly surprising - you didn't tell it to produce an error
    message! If you use a non-existent file, then the open() system call
    *will* thoughtfully inform your program that there was a problem, by
    returning a negative nunber in eax. You just choose to ignore this...

    A couple of other things: as you're not creating a file, the mode
    argument to open() is ignored, so there's no point putting anything
    special in edx beforehand. There's no need for the xchg instruction when
    you immediately clobber eax anyway. And you don't return a sensible exit
    status to the shell at the end.

    Here's your code with these things fixed up:


    section .data

    path db "/dev/zero",0x00
    errmsg db "Error opening file!",0x0A
    errlen equ $-errmsg

    section .text

    global _start
    _start:
    mov eax,5 ; open
    mov ebx,path
    xor ecx,ecx ; O_RDONLY
    int 0x80

    or eax,eax
    jns cont

    ; error opening file...
    mov eax,4 ; write
    mov ebx,2 ; stderr
    mov ecx,errmsg
    mov edx,errlen
    int 0x80
    mov ebx,1 ; return failure status
    jmp finish

    cont:
    mov ebx,eax ; put fd into ebx
    mov eax,6 ; close
    int 0x80
    xor ebx,ebx ; return success status

    finish:
    mov eax,1 ; exit
    int 0x80

    Comment

    • Malcolm McLean

      #3
      Re: File operations in Linux


      "Antoninus Twink" <nospam@nospam. invalidwrote in message
      On 26 May 2008 at 10:11, kid joe wrote:
      global _start
      _start:
      mov eax,5 ; open
      mov ebx,path
      xor ecx,ecx ; O_RDONLY
      int 0x80
      >
      This is indisputably off-topic. Please protect the newsgroup by not replying
      here.

      --
      Free games and programming goodies.



      Comment

      • kid joe

        #4
        Re: File operations in Linux

        On Mon, 26 May 2008 12:20:21 +0100, Malcolm McLean wrote:
        >
        "Antoninus Twink" <nospam@nospam. invalidwrote in message
        >On 26 May 2008 at 10:11, kid joe wrote:
        >global _start
        >_start:
        > mov eax,5 ; open
        > mov ebx,path
        > xor ecx,ecx ; O_RDONLY
        > int 0x80
        >>
        This is indisputably off-topic. Please protect the newsgroup by not replying
        here.
        Thanks a lot to AT for the advice.

        Sorry it's a bit off-topic. I thought about posting to comp.lang.asm.x 86
        but that's a moderated newsgroup so it would take possibly days to get an
        answer by the time your message is approved then any replies are approved.
        This group seemed close enough and I've got my question answered so thanks.

        Comment

        • Eric Sosman

          #5
          Re: File operations in Linux

          kid joe wrote:
          On Mon, 26 May 2008 12:20:21 +0100, Malcolm McLean wrote:
          >
          >"Antoninus Twink" <nospam@nospam. invalidwrote in message
          >>On 26 May 2008 at 10:11, kid joe wrote:
          >>global _start
          >>_start:
          >> mov eax,5 ; open
          >> mov ebx,path
          >> xor ecx,ecx ; O_RDONLY
          >> int 0x80
          >>>
          >This is indisputably off-topic. Please protect the newsgroup by not replying
          >here.
          >
          Thanks a lot to AT for the advice.
          >
          Sorry it's a bit off-topic. I thought about posting to comp.lang.asm.x 86
          but that's a moderated newsgroup so it would take possibly days to get an
          answer by the time your message is approved then any replies are approved.
          This group seemed close enough and I've got my question answered so thanks.
          It's not "a bit" off-topic, it's completely off-topic.
          The question had absolutely nothing to do with C; there
          wasn't even a fragment of C-like code anywhere connected
          with it. Twink does everyone, even you, a disservice when
          he or she rewards your self-centered impatience.

          --
          Eric Sosman
          esosman@ieee-dot-org.invalid

          Comment

          • Joachim Schmitz

            #6
            Re: File operations in Linux

            kid joe wrote:
            On Mon, 26 May 2008 12:20:21 +0100, Malcolm McLean wrote:
            >
            >>
            >"Antoninus Twink" <nospam@nospam. invalidwrote in message
            >>On 26 May 2008 at 10:11, kid joe wrote:
            >>global _start
            >>_start:
            >> mov eax,5 ; open
            >> mov ebx,path
            >> xor ecx,ecx ; O_RDONLY
            >> int 0x80
            >>>
            >This is indisputably off-topic. Please protect the newsgroup by not
            >replying here.
            >
            Thanks a lot to AT for the advice.
            >
            Sorry it's a bit off-topic.
            That the understatemenmt of the month, in not of the decade...
            I thought about posting to
            comp.lang.asm.x 86 but that's a moderated newsgroup so it would take
            possibly days to get an answer by the time your message is approved
            then any replies are approved. This group seemed close enough and
            This group seemed close enough
            This goup is by no means close enough, here we don't discuss either
            assembler, open or Linux, there are other newsgroups dedicated to that
            (comp.lang.asm. x86, comp.unix.progr ammer and comp.os.linux.* respectively).

            Bye, Jojo


            Comment

            • Kenny McCormack

              #7
              Re: File operations in Linux

              In article <ZcWdnXkoxrFDAa fVnZ2dneKdnZydn Z2d@bt.com>,
              Malcolm McLean <regniztar@btin ternet.comwrote :
              >
              >"Antoninus Twink" <nospam@nospam. invalidwrote in message
              >On 26 May 2008 at 10:11, kid joe wrote:
              >global _start
              >_start:
              > mov eax,5 ; open
              > mov ebx,path
              > xor ecx,ecx ; O_RDONLY
              > int 0x80
              >>
              >This is indisputably off-topic. Please protect the newsgroup by not replying
              >here.
              The newsgroup must be awfully fragile if this post is capable of harming
              it.

              Comment

              • santosh

                #8
                Re: File operations in Linux

                kid joe wrote:
                On Mon, 26 May 2008 12:20:21 +0100, Malcolm McLean wrote:
                >
                >>
                >"Antoninus Twink" <nospam@nospam. invalidwrote in message
                >>On 26 May 2008 at 10:11, kid joe wrote:
                >>global _start
                >>_start:
                >> mov eax,5 ; open
                >> mov ebx,path
                >> xor ecx,ecx ; O_RDONLY
                >> int 0x80
                >>>
                >This is indisputably off-topic. Please protect the newsgroup by not
                >replying here.
                >
                Thanks a lot to AT for the advice.
                >
                Sorry it's a bit off-topic. I thought about posting to
                comp.lang.asm.x 86 but that's a moderated newsgroup so it would take
                possibly days to get an answer by the time your message is approved
                then any replies are approved. This group seemed close enough and I've
                got my question answered so thanks.
                The experts in alt.lang.asm are just itching for challenging posts from
                newbies. And it's unmoderated. Next time try there.

                Comment

                • Default User

                  #9
                  Re: File operations in Linux

                  kid joe wrote:

                  Thanks a lot to AT for the advice.
                  Twink is a troll, who has used you as a pawn in his on-going attempt to
                  disrupt the newsgroup. As such, it's not doing you very much good.
                  Should you in the future have a legitimate question for the group,
                  you'll be less likely to get advice from the very knowledgable people
                  here.




                  Brian

                  Comment

                  • Malcolm McLean

                    #10
                    Re: File operations in Linux

                    "Kenny McCormack" <gazelle@xmissi on.xmission.com wrote in message
                    In article <ZcWdnXkoxrFDAa fVnZ2dneKdnZydn Z2d@bt.com>,
                    Malcolm McLean <regniztar@btin ternet.comwrote :
                    >>
                    >>"Antoninus Twink" <nospam@nospam. invalidwrote in message
                    >>On 26 May 2008 at 10:11, kid joe wrote:
                    >>global _start
                    >>_start:
                    >> mov eax,5 ; open
                    >> mov ebx,path
                    >> xor ecx,ecx ; O_RDONLY
                    >> int 0x80
                    >>>
                    >>This is indisputably off-topic. Please protect the newsgroup by not
                    >>replying
                    >>here.
                    >
                    The newsgroup must be awfully fragile if this post is capable of harming
                    it.
                    >
                    Unfortunately that's a characteristic of computers. The trivial is
                    important. One email from Mr Conue in Nigeria trying to persuade me to allow
                    him to deposit $15 million of illegal bribes in my bank account is merely
                    amusing, but they very rapidly mount to a major nuisance.

                    It's not a face to face conversation, and different social rules apply.

                    --
                    Free games and programming goodies.


                    Comment

                    • Eligiusz Narutowicz

                      #11
                      Re: File operations in Linux

                      "Default User" <defaultuserbr@ yahoo.comwrites :
                      kid joe wrote:
                      >
                      >
                      >Thanks a lot to AT for the advice.
                      >
                      Twink is a troll, who has used you as a pawn in his on-going attempt to
                      disrupt the newsgroup. As such, it's not doing you very much good.
                      Should you in the future have a legitimate question for the group,
                      you'll be less likely to get advice from the very knowledgable people
                      here.
                      >
                      Why is this? This is a help group and if he asks a legit questions I am
                      sure someone will help him quickly.

                      Comment

                      • Jens Thoms Toerring

                        #12
                        Re: File operations in Linux

                        Eligiusz Narutowicz <eligiuszdotnar u@hotmail.comwr ote:
                        "Default User" <defaultuserbr@ yahoo.comwrites :
                        kid joe wrote:
                        Thanks a lot to AT for the advice.
                        Twink is a troll, who has used you as a pawn in his on-going attempt to
                        disrupt the newsgroup. As such, it's not doing you very much good.
                        Should you in the future have a legitimate question for the group,
                        you'll be less likely to get advice from the very knowledgable people
                        here.
                        Why is this? This is a help group and if he asks a legit questions I am
                        sure someone will help him quickly.
                        Are you really that dense? This is no all-kind-of-questions-
                        that-may-come-to-mind help group, this is a group about the
                        programming language C in case you didn't notice yet. Or do
                        you want next to answer questions where to buy shoes? Every-
                        one here is also some kind of "expert" on buying shoes since
                        probably all here bought some pairs, but that doesn't make it
                        topical HERE. If you want a group where all and every question
                        gets aneswered then go through the process of creating it and
                        good luck. I guess we can then send all the people with off-
                        topic questions there.

                        --
                        \ Jens Thoms Toerring ___ jt@toerring.de
                        \______________ ____________ http://toerring.de

                        Comment

                        • Richard Heathfield

                          #13
                          Re: File operations in Linux

                          Jens Thoms Toerring said:
                          Eligiusz Narutowicz <eligiuszdotnar u@hotmail.comwr ote:
                          <snip>
                          >This is a help group and if he asks a legit questions I am
                          >sure someone will help him quickly.
                          >
                          Are you really that dense?
                          Yes, he's really that dense. If you find that hard to believe, look at his
                          track record.

                          --
                          Richard Heathfield <http://www.cpax.org.uk >
                          Email: -http://www. +rjh@
                          Google users: <http://www.cpax.org.uk/prg/writings/googly.php>
                          "Usenet is a strange place" - dmr 29 July 1999

                          Comment

                          • Richard

                            #14
                            Re: File operations in Linux

                            jt@toerring.de (Jens Thoms Toerring) writes:
                            Eligiusz Narutowicz <eligiuszdotnar u@hotmail.comwr ote:
                            >"Default User" <defaultuserbr@ yahoo.comwrites :
                            >
                            kid joe wrote:
                            >
                            >Thanks a lot to AT for the advice.
                            >
                            Twink is a troll, who has used you as a pawn in his on-going attempt to
                            disrupt the newsgroup. As such, it's not doing you very much good.
                            Should you in the future have a legitimate question for the group,
                            you'll be less likely to get advice from the very knowledgable people
                            here.
                            >
                            >Why is this? This is a help group and if he asks a legit questions I am
                            >sure someone will help him quickly.
                            >
                            Are you really that dense? This is no all-kind-of-questions-
                            that-may-come-to-mind help group, this is a group about the
                            programming language C in case you didn't notice yet. Or do
                            you want next to answer questions where to buy shoes? Every-
                            one here is also some kind of "expert" on buying shoes since
                            probably all here bought some pairs, but that doesn't make it
                            topical HERE. If you want a group where all and every question
                            gets aneswered then go through the process of creating it and
                            good luck. I guess we can then send all the people with off-
                            topic questions there.
                            Erm, he said "legit questions". Default Jobsworth was saying people
                            would not help him with on topic, legitimate questions. I think you owe
                            the poster an apology.

                            Its good to pop back and see the usual arrogant, preening wannabes
                            strutting around and being as rude and obnoxious as possible. What a
                            hoot.


                            Comment

                            Working...