Thread: Use of PG_BINARY_R and "r"
I am seeing conflicting usage of PG_BINARY_R and "r" in AllocateFile() calls. Is there a logic of when to use one or the other, or is this just badly maintained code? The significant difference is:#ifdef __CYGWIN__#define PG_BINARY O_BINARY#define PG_BINARY_R "rb"#define PG_BINARY_W "wb"#else#definePG_BINARY 0#define PG_BINARY_R "r"#define PG_BINARY_W "w"#endif For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf opened with PG_BINARY_R. My assumption is that text files should use "r" and binary files use PG_BINARY_R. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026
Bruce Momjian <pgman@candle.pha.pa.us> writes: > My assumption is that text files should use "r" and binary files use > PG_BINARY_R. I believe that's correct. It seems kinda inconsistent though. > For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf > opened with PG_BINARY_R. The latter is clearly wrong, since pg_ident.conf is not binary. Is there any interest in defining#define PG_TEXT_R "r"#define PG_TEXT_W "w" so that AllocateFile is always called with one of this set of macros? Or is that just silly? regards, tom lane
Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: > > My assumption is that text files should use "r" and binary files use > > PG_BINARY_R. > > I believe that's correct. It seems kinda inconsistent though. > > > For example, in 7.2 I see pg_hba.conf opened with "r" and pg_ident.conf > > opened with PG_BINARY_R. > > The latter is clearly wrong, since pg_ident.conf is not binary. > > Is there any interest in defining > #define PG_TEXT_R "r" > #define PG_TEXT_W "w" > so that AllocateFile is always called with one of this set of macros? > Or is that just silly? I kind of like that. The problem I think is that we use "r" in some places so people assume it is just like ordinary open() args, which it is unless it is a binary file, where you have to use the macro. That seems kind of confusing. However, we don't do this very often so just cleaning up what we have may be enough. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 853-3000+ If your life is a hard drive, | 830 Blythe Avenue + Christ can be your backup. | Drexel Hill, Pennsylvania19026