Requesting advice how to clean up C code for validating string represents integer

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Robert Maas, see http://tinyurl.com/uh3t

    Re: Requesting advice how to clean up C code for validating string represents integer

    From: Keith Thompson <k...@mib.org >
    I think the problem is that you seem to be writing your own
    attribution lines. ...
    I have to, or they wouldn't be there at all.
    The standard form for attribution lines and quoted text is:
    So-and-So <f...@bar.comwr ites:
    Text that So-and-So wrote ...
    Any decent newsreader will do this for you automatically.
    I don't have access to any such here.
    <http://www.rawbw.com/~rem/NewPub/mySituation.htm l>
    I do the best I can do with what's available here. If you don't
    like how I do it, either hire me at a good enough wage that I can
    pay off my credit-card debt and then have extra money left over to
    buy a new computer that is capable of direct InterNet service, or
    use the "any decent newsreader" you claim to be using to "killfile"
    me so you'll never see anything I post and my slightly nonstandard
    way of citing context won't bother you so much that you would
    continue to harass me about it.
    I'm posting this through a VT100 terminal emulator,
    Hey, I thought I was the only person left still doing that!!
    So why are you so nasty to me? You're the one person out there who
    ought to understand the non-standard way I have to do things here.
    but I'm able to download and view PDF files on the computer where
    I'm running the emulator.
    Do you happen to know where I can find a binhex of a Macintosh
    version of a PDF viewer that requires less than one megabyte total?
    (My hard disk is getting painfully full, can't afford more than
    about one megabyte on any single addendum to what's occupying space
    on hard disk. At the moment, total of 14.8 MB free on HD, and like
    your mommy should have told you, "don't spend it all in one place".)
    But perhaps you should try reading this:
    ...
    | If you can't deal with PDF, search for "n869.txt"

    I didn't see your article saying that until after I had already
    done a Google search on a couple terms somebody else posted and
    found it and downloaded:
    WG14/N869 Committee Draft -- January 18, 1999
    (1330770 bytes on Unix)
    as I mentionned several times after you posted that while it was in
    my backlog of articles not yet replied to. That looks like the same
    file you're referring to. Anyway, I'm now trying desperately to
    catch up with that backlog... I should have been to bed 3.26 hours ago.

    Comment

    • Flash Gordon

      Re: Requesting advice how to clean up C code for validating stringrepresent s integer

      Robert Maas, see http://tinyurl.com/uh3t wrote, On 24/03/07 08:17:
      >From: Keith Thompson <k...@mib.org >
      >I think the problem is that you seem to be writing your own
      >attribution lines. ...
      >
      I have to, or they wouldn't be there at all.
      <snip>

      So why do you refuse repeated requests that you type two fewer
      characters. What is so hard about NOT typing "" before you type "From:
      ....".
      --
      Flash Gordon

      Comment

      • Robert Maas, see http://tinyurl.com/uh3t

        CookBook/Matrix errata (was months ago: Requesting advice how to clean up C code for validating string represents integer)

        From: pete <pfil...@mindsp ring.com>
        If M and N are short integers,
        then M+N is an expression of type int and not of type short.
        Hmm, so you can do this:
        short int M = MAX_SHORT_INT; (whatever the correct name is, DWIM here)
        short int N = MAX_SHORT_INT;
        int MPN;
        MPN = M + N;
        and MPN is guaranteed to have the correct value without short-int wraparound?
        I suppose that's good to know. But on the other hand, int can in fact
        be implemented as either long int or short int or anything between,
        so unless you know that your implementation has int with at least one
        more bit than short int, the above is all false, int might wrap around
        because it's just short int on that implementation. So maybe that
        is of no value, can't rely on any portable behaviour there, because
        the size of int isn't portable.
        If (M+N) overflows, then the result is undefined.
        Ah, thanks for the enlightenment. Yes, I see now that's correct.
        Let me check whether my CookBook/Matrix ever mentions either overflow
        or wraparound ... OK I fixed the places where overflow is mentionned
        in both CookTop.html and Matrix.html, so instead of saying it doesn't
        check for overflow, now it says it doesn't necessarily check for
        overflow, i.e. it might check or might not, and that the behaviour
        is undefined. I kept in the remark about use of such functions (for
        example atol) is not recommended, and now the reason is more clear.

        Comment

        • Robert Maas, see http://tinyurl.com/uh3t

          Designations for various C standards (was months ago: Requesting advice how to clean up C code for validating string represents integer)

          From: Erik de Castro Lopo <e...@mega-nerd.com>
          The current official C standard, C99, was issued by ISO (and
          later adopted by ANSI).
          So it would seem reasonable, in articles posted any time from about
          2000 to the present and for a while in the future, to call it "ANSI
          C", no??
          ANSI is an American standard (not that there is anything wrong with
          that :-)) but since this is an international newsgroup, the
          international ISO standard should probably take precedence.
          You have a good point. I'll try to remember to refer to it as ISO C
          despite the contrary notation in the GNU C compiler that I use
          here. And where there's any ambiguity about *which* edition of ISO
          C, I'll refer to it as ISO C1989 or ISO C1999 (the latter being
          "ISO C" per the previous sentence).

          Unfortunately I don't have access to any document defining ISO
          C1989, and the only document for ISO C1999 is a draft version which
          is alleged to differ from the actual standard in various unknown
          ways. If somebody in this newsgroup knows those differences,
          perhaps that person could post a Web page that I could use for
          reference? Not just for me, for anyone needing the info, but at the
          moment mostly for me.

          What I *really* need is a plain-text version of ISO C1989, so I can
          use that as a base for my CookBook/Matrix, since ISO C1999 isn't
          yet fully implemented most (any?) places. Or maybe I should just
          use the draft document as my base, with the caveat that both ISO
          C1989 and ISO C1999 differ from it in various unknown ways? With
          all the various standards and implementations that conflict with
          each other, I'm thinking that writing portable C code really is
          impossible, and I shouldn't worry about it, in particular shouldn't
          waste time trying to make my CookBook/Matrix document exactly match
          any hypothetical idea of "portable C code" per this or that standard.
          How about "ISO C90 standard"?
          Bad for two reasons:
          - The ISO standard was published in 1989, not 1990.
          - In the year 90, the Roman Empire was in control of Europe, and
          the New World hadn't yet been discovered by my ancestors, and
          people didn't realize that critical military systems would
          remain non-functional for years after the y2k change, etc.

          <OT>I wonder if the WTC bombing, as well as the faulty information
          about WMD in Iraq, were both caused by software still not usable
          after y2k, blinding our (USA) military as to what was really
          happening?</OT>

          Comment

          • Flash Gordon

            Re: Designations for various C standards (was months ago: Requestingadvic e how to clean up C code for validating string represents integer)

            Robert Maas, see http://tinyurl.com/uh3t wrote, On 24/03/07 17:56:

            <snip>
            Unfortunately I don't have access to any document defining ISO
            C1989,
            <snip>

            Only true if you choose to ignore the posts where a source has been
            given and you also cannot be bothered to type in "c89 draft" in to
            Google. Oh, and you also cannot be bothered to check your local library
            to see what books they might have or be able to get.
            >How about "ISO C90 standard"?
            >
            Bad for two reasons:
            - The ISO standard was published in 1989, not 1990.
            Wrong. As you have already been told ANSI published it in 1989 and ISO
            adopted it in 1990.
            - In the year 90, the Roman Empire was in control of Europe, and
            <snip more irrelevant stuff>

            Do you seriously think there is some chance of confusion or are you just
            being deliberately awkward?
            --
            Flash Gordon

            Comment

            • Richard Heathfield

              Re: CookBook/Matrix errata (was months ago: Requesting advice how to clean up C code for validating string represents integer)

              Robert Maas, see http://tinyurl.com/uh3t said:
              >From: pete <pfil...@mindsp ring.com>
              >If M and N are short integers,
              >then M+N is an expression of type int and not of type short.
              >
              Hmm, so you can do this:
              short int M = MAX_SHORT_INT; (whatever the correct name is, DWIM
              here) short int N = MAX_SHORT_INT;
              int MPN;
              MPN = M + N;
              and MPN is guaranteed to have the correct value without short-int
              wraparound?
              No, because there is no guarantee that int is wider than short.

              --
              Richard Heathfield
              "Usenet is a strange place" - dmr 29/7/1999

              email: rjh at the above domain, - www.

              Comment

              • Robert Maas, see http://tinyurl.com/uh3t

                Re: Requesting advice how to clean up C code for validating string represents integer

                From: Flash Gordon <s...@flash-gordon.me.uk>
                Please tell me whether GNU C MAN pages are referring to C99 or what?
                If you read the rest of the GCC documentation you will find one of two
                things:
                1) It tells you that it is referring to C89
                2) It is a version pre-dating C99 which would therefore obviously not be
                referring to C99.
                I spent a long time reading/skimming all the way to the end of the
                man pages, and saw no such information. I saw a reference to info
                pages, so I tried info gcc, which put me into EMACS INFO mode with
                no idea how to navigate it. It's been more than 20 years since I've
                used EMACS INFO mode and I simply can't remember how to follow a
                link there.

                Comment

                • Robert Maas, see http://tinyurl.com/uh3t

                  Meaning of &quot;region&qu ot; (was months ago: Requesting advice how to clean up C code for validating string represents integer)

                  From: Mark McIntyre <markmcint...@s pamcop.net>
                  The San Francisco Bay Area is considered a region,
                  You're pretty much making my point by this bollocks. the Bay Area may
                  be a postal region or tax region (for all I know) but its not a
                  geological region, nor yet a weather region.
                  You're definitely making my point, that for the C spec to simply
                  say that an lvalue is defined as something that specifies a region
                  but fails to say what kind of region, is not a specification at
                  all.
                  Common Sense says that Neptune hasn't cleared its neighborhood of
                  Pluto, and the Earth hasn't cleared its neighborhood of Luna, and
                  Jupiter hasn't cleared its neighborhood of Io or Europa or Ganymede
                  or Calisto. So none of those is a planet per IAU's 2006 definition???
                  Apparently you're unfamilar with the meaning of yet another phrase...
                  What do you mean "the meaning"?? The phrease "clear its
                  neighborhood" could mean almost anything. It must have tens, maybe
                  even hundreds, of different meanings. No one of those many meanings
                  is "the meaning".

                  Comment

                  • Keith Thompson

                    Re: Requesting advice how to clean up C code for validating string represents integer

                    rem642b@yahoo.c om (Robert Maas, see http://tinyurl.com/uh3t) writes:
                    >From: Keith Thompson <k...@mib.org >
                    >I think the problem is that you seem to be writing your own
                    >attribution lines. ...
                    >
                    I have to, or they wouldn't be there at all.
                    Then can you at least do it *right*? Rather than manually typing
                    From: Keith Thompson <kst-u@mib.org>
                    (or whatever mechanism you're using), you could manually type

                    Keith Thompson <kst-u@mib.orgwrites :

                    The form of an attribution line can vary, but it should include the
                    poster's name and/or address, and it *shouldn't* start with ">" or the
                    word "From".
                    >The standard form for attribution lines and quoted text is:
                    > So-and-So <f...@bar.comwr ites:
                    > Text that So-and-So wrote ...
                    >Any decent newsreader will do this for you automatically.
                    >
                    I don't have access to any such here.
                    <http://www.rawbw.com/~rem/NewPub/mySituation.htm l>
                    I do the best I can do with what's available here.
                    I believe you can do better.
                    If you don't
                    like how I do it, either hire me at a good enough wage that I can
                    pay off my credit-card debt
                    [snip]

                    Please read the article I posted recently with the "open classroom"
                    analogy. We can't do anything about your personal situation. There
                    are several billion people who are worse off than you are. After
                    we've helped all of them, perhaps we can get to you. There are
                    support groups out there; please find one rather than using
                    comp.lang.c to tell us about your personal problems.

                    [...]
                    >I'm posting this through a VT100 terminal emulator,
                    >
                    Hey, I thought I was the only person left still doing that!!
                    I seriously doubt it.
                    So why are you so nasty to me? You're the one person out there who
                    ought to understand the non-standard way I have to do things here.
                    I'm not being nasty. I'm trying to be as helpful as I can. But if
                    you think I'm being nasty, then you're perfectly free to ignore me.
                    (No killfile is needed; just skip any article with my name on it.)
                    Please let me know if you decide to take this route, so I won't waste
                    my time offering you any more advice. (To be clear, I'm not being
                    sarcastic about this.)

                    There are plenty of decent newsreaders that run just fine on terminals
                    or terminal emulators. I use Gnus, which runs under Emacs; others
                    include tin, nn, pine, trn, slrn, and even the ancient rn.

                    Perhaps your situation doesn't allow you to use any of them, but you
                    might consider looking into it. (I think you said you dial into a
                    Unix system; I'd be surprised if it didn't have some newsreader
                    available.)
                    >but I'm able to download and view PDF files on the computer where
                    >I'm running the emulator.
                    >
                    Do you happen to know where I can find a binhex of a Macintosh
                    version of a PDF viewer that requires less than one megabyte total?
                    Not a clue. Try asking in a Macintosh newsgroup, or doing a Google
                    search.

                    [...]

                    --
                    Keith Thompson (The_Other_Keit h) kst-u@mib.org <http://www.ghoti.net/~kst>
                    San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
                    "We must do something. This is something. Therefore, we must do this."
                    -- Antony Jay and Jonathan Lynn, "Yes Minister"

                    Comment

                    • Keith Thompson

                      Re: Designations for various C standards (was months ago: Requesting advice how to clean up C code for validating string represents integer)

                      rem642b@yahoo.c om (Robert Maas, see http://tinyurl.com/uh3t) writes:
                      Erik de Castro Lopo <e...@mega-nerd.comwrites:
                      [attribution line fixed]
                      >How about "ISO C90 standard"?
                      >
                      Bad for two reasons:
                      - The ISO standard was published in 1989, not 1990.
                      No, the ISO standard was published in 1990.
                      - In the year 90, the Roman Empire was in control of Europe, and
                      [snip]

                      I understand the point, and I also prefer to represent years in 4
                      digits whenever possible. But in this case, there is a nearly
                      universal existing convention to refer to the various standards as
                      "C89", "C90", and "C99". Calling them "C1989", "C1990", and "C1999"
                      does not increase clarity (nobody is going to think the ancient Romans
                      had a standard for the C programming language). In fact, I find the
                      names "C90" and "C99" more visually distinct from each other than
                      "C1990" and "C1999". If you're interested in being understood, I
                      encourage you to use the 2-digit forms.

                      --
                      Keith Thompson (The_Other_Keit h) kst-u@mib.org <http://www.ghoti.net/~kst>
                      San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
                      "We must do something. This is something. Therefore, we must do this."
                      -- Antony Jay and Jonathan Lynn, "Yes Minister"

                      Comment

                      • Robert Maas, see http://tinyurl.com/uh3t

                        Various C standards/documents (was months ago: Requesting advice how to clean up C code for validating string represents integer)

                        From: Keith Thompson <k...@mib.org >
                        And what exactly do you mean by "ANSI"?
                        Whatever is the **current** (latest official) standard.
                        At the moment, that seems to be C99.
                        Ok. You need to be aware, though, that a lot of people use the
                        term "ANSI C" to refer to the language defined by the 1989 ANSI
                        standard. Which is why I refer to "C90" or "C99", to avoid the
                        potential ambiguity.
                        Yeah. Earlier postings have convinced me of that ambiguity indeed.
                        (I'm still desperately trying to catch up with my backlog.)
                        Or whatever the GNU C compiler uses when the -ansi switch is turned
                        on. From the man pages here:
                        [snip]
                        gcc's "-ansi" option is equivalent to "-std=c90" or
                        "std=iso9899:19 90". (I've suggested that "std=c89" should also
                        be accepted.) So, as you can see, the term "ANSI C" is ambiguous.
                        I wasn't able to find that in the man pages. Let me quote exactly
                        what I see there:

                        -ansi Support all ANSI standard C programs.

                        This turns off certain features of GNU C that are incompatible
                        with ANSI C, such as the asm, inline and typeof keywords, and
                        predefined macros such as unix and vax that identify the type of
                        system you are using. It also enables the undesirable and
                        rarely used ANSI trigraph feature, and disallows `$' as part of
                        identifiers.

                        The alternate keywords __asm__, __extension__, __inline__ and
                        __typeof__ continue to work despite `-ansi'. You would not want
                        to use them in an ANSI C program, of course, but it is useful to
                        put them in header files that might be included in compilations
                        done with `-ansi'. Alternate predefined macros such as __unix__
                        and __vax__ are also available, with or without `-ansi'.

                        The `-ansi' option does not cause non-ANSI programs to be re-
                        jected gratuitously. For that, `-pedantic' is required in addi-
                        tion to `-ansi'.

                        The preprocessor predefines a macro __STRICT_ANSI__ when you use
                        the `-ansi' option. Some header files may notice this macro and
                        refrain from declaring certain functions or defining certain
                        macros that the ANSI standard doesn't call for; this is to avoid
                        interfering with any programs that might use these names for
                        other things.

                        I've looked over that text several times, and even did a search
                        after loading it into a text editor, and I still don't see it say
                        what you are saying, not a single mention of 89 or 90 anywhere
                        there. Apparently the man pages on your system are better in this
                        respect than the man pages on this ISP shell account I'm using.

                        In any case, I'm thoroughly convinced "ANSI C" is too ambiguous for
                        my purposes.
                        The gcc documentation refers to C89 when it discusses the "-ansi"
                        option.
                        What documentation are you referring to? Not the 'man' pages here!!
                        I would consider that "old ANSI C", specifically "previous ANSI C".
                        Or you could call it "ANSI C89".
                        Somebody just before you pointed out that this is an international
                        newsgroup and I should use the ISO designation instead of the ANSI
                        designation. And to be y2k safe, I'll use the full four-digit year.
                        What about C89 as an alternate designation for C90?
                        (ISO standardized it in 1989, but ANSI didn't join in approving it
                        until 1990, right. So from ISO's point of view, it's really C89?)
                        Not quite. ANSI issued a C standard (the first one) in 1989. ISO
                        adopted it, with some non-substantive changes, in 1990; ANSI then
                        adopted the 1990 ISO standard as an ANSI standard.
                        OK, I'm just going to take your word for that, you anonymous person
                        I've never met who is posting from some unknown IP number
                        (apparently part of RoadRunner ISP, which fails to include the NNTP
                        posting host like most other ISPs do), because I don't have any
                        more energy to check facts myself. So it's now ISO C1990 in my book.
                        I don't remember where your Matrix is.
                        <http://www.rawbw.com/~rem/HelloPlus/CookBook/Matrix.html>
                        <http://cbfalconer.home .att.net/download/n869_txt.bz2is a
                        compressed (with bzip2) plain-text draft.
                        Ah, so it's *not* plain text, it's compressed with a nonstandard
                        compressor which confuses lynx (and me, using lynx to view it).
                        From a different source I downloaded:
                        WG14/N869 Committee Draft -- January 18, 1999
                        Is that the same as the bzip2-compressed document you cited? If so,
                        then I guess this search-for-plain-text-standard is nearly
                        finished, still no plain text of the actual standard (neither 1990
                        or 1999), but this draft pretty close to ISO C1999.
                        n1124.pdf is what I use. Adobe Reader is able to translate it to
                        plain text. The result isn't as nicely formatted as n869.txt,
                        but it has the advantage that it includes the full C99 standard
                        plus the two Technical Corrigenda.
                        That might be useful.
                        I already offered to send you a copy; you'll need to contact me
                        and let me know how to get it to you (compressed? if so, how?
                        e-mail? ftp? www?).
                        If you e-mail as an attachment (gzip preferred if not plain text),
                        be sure to go to my Web site to see what keyword has to be in the
                        Subject field so I'll arrive separated from the
                        hundred-spam-per-day so I'll ever see it.

                        If you make it available by FTP or HTTP, you can post the URL
                        either in the newsgroup, where I may or may not discover it via
                        Google search, or e-mail the URL with the Subject-field tag to
                        separate it from spam.
                        Most of us find the PDF version sufficiently useful.
                        Most of you have enough income to be able to afford a new computer
                        every several years and live PPP access for each such computer. My
                        current computer was already very old when I bought it used in
                        1998, but it was all I could afford, and currently I would't be
                        able to afford even it, so it's good that I bought it when I did or
                        I'd be totally without computer ever since mid-1999 when my even
                        older Mac Plus died.

                        Comment

                        • Flash Gordon

                          Re: Requesting advice how to clean up C code for validating stringrepresent s integer

                          Robert Maas, see http://tinyurl.com/uh3t wrote, On 24/03/07 21:09:
                          >From: Flash Gordon <s...@flash-gordon.me.uk>
                          Why are you still insisting on putting "" before the attribution line
                          when you have had multiple requests not to? Are you *trying* to make it
                          harder for everyone else? The request is for you to do *less* typing, so
                          you can't complain we are trying to make you do more work. Your method
                          tells people that it was my asking whether the GNU C MAN pages are
                          referring to C99 and some unknown person answering, when in fact it was
                          me doing the answering and you asking.
                          >>Please tell me whether GNU C MAN pages are referring to C99 or what?
                          >If you read the rest of the GCC documentation you will find one of two
                          >things:
                          >1) It tells you that it is referring to C89
                          >2) It is a version pre-dating C99 which would therefore obviously not be
                          >referring to C99.
                          >
                          I spent a long time reading/skimming all the way to the end of the
                          man pages, and saw no such information. I saw a reference to info
                          pages, so I tried info gcc, which put me into EMACS INFO mode with
                          no idea how to navigate it. It's been more than 20 years since I've
                          used EMACS INFO mode and I simply can't remember how to follow a
                          link there.
                          The gcc documentation includes info pages, if you don't read those then
                          you can't claim to have looked through the documentation. I found it
                          easy enough to find out how to use info, info unsurprisingly enough
                          comes with documentation on how to use it. Or you could read the
                          documentation in the obvious place on the web.
                          --
                          Flash Gordon

                          Comment

                          • Gregor H.

                            Re: Designations for various C standards (was months ago: Requesting advice how to clean up C code for validating string represents integer)

                            On Sat, 24 Mar 2007 15:14:28 -0700, Keith Thompson <kst-u@mib.orgwrote:
                            >
                            ...nobody is going to think the ancient Romans had a standard for the C
                            programming language.
                            >
                            Well, this may be true. On the other hand it's a historical fact that "one of
                            the main causes of the fall of the Roman Empire was that, lacking zero, they
                            had no way to indicate successful termination of their C programs." :-)


                            G. H.

                            --

                            E-mail: info<at>simple-line<Punkt>de

                            Comment

                            • Robert Maas, see http://tinyurl.com/uh3t

                              bzip2 (was months ago: Requesting advice how to clean up C code for validating string represents integer

                              From: Richard Heathfield <r...@see.sig.i nvalid>
                              ... you can get text conversions, but you tend to lose some
                              important format information (e.g. subscript and superscript info
                              is lost,
                              If it was ever there in the first place, why would it be lost except by
                              a cruddy text converter??
                              so you see sillinesses such as 232 - 1 on occasion).
                              That looks like a bug, or super-lazy algorityhm, not an inherent
                              limitation of the task.
                              or you're saying you don't recognise bzip2 format.
                              I never heard of bzip2 before. Lynx never heard of it either,
                              passes it verbatim to the VT100, which results in garbage. I
                              checked, and bzip2 is in fact available here on the Unix shell
                              machine, so if I ever really need such a file I can short-circuit
                              lynx to download it and then manually decompress it.
                              Now if you would be so kind as to translate that to English...
                              You can do it yourself, using bunzip2. Furrfu.
                              Yeah, I know that now, after reading the man pages here.

                              Comment

                              • Robert Maas, see http://tinyurl.com/uh3t

                                Man pages and standards (was months ago: Requesting advice how to clean up C code for validating string represents integer)

                                From: "Stephen Sprunk" <step...@sprunk .org>
                                If you're on a unix-ish system, try "man func" ...
                                % man func
                                No manual entry for func
                                % man strtoll
                                NAME
                                strtol, strtoll, strtoq -- convert a string value to a long, long long,
                                or quad_t integer
                                LIBRARY
                                Standard C Library (libc, -lc)
                                STANDARDS
                                The strtol() function conforms to ISO/IEC 9899:1990 (``ISO C89''). The
                                strtoll() function conforms to ISO/IEC 9899:1999 (``ISO C99''). The BSD
                                strtoq() function is deprecated.

                                Hey, I never heard of that before. Thanks.
                                If you work with a lot of unix-ish code, you'll see that a lot of
                                functions you're used to will be listed as conforming to POSIX
                                and _not_ C89/99. For example, compare the man pages for open()
                                and fopen().
                                % man open
                                (No mention of STANDARDS)
                                % man fopen
                                STANDARDS
                                The fopen() and freopen() functions conform to ISO/IEC 9899:1990
                                (``ISO C89''). The fdopen() function conforms to IEEE Std 1003.1-1988
                                (``POSIX.1'').

                                Comment

                                Working...