|
You have to tell it that you want it to truncate an existing file!
To make it truncate an existing file, change this line:
c eval oflag = O_CREAT+O_WRONLY + O_CODEPAGE
to:
c eval oflag = O_CREAT + O_WRONLY + O_CODEPAGE
+ O_TRUNC
And, if you don't already have a constant defining O_TRUNC, it should
look like this:
D* Truncate File to 0 bytes
D O_TRUNC C 64
On Tue, 14 May 2002, Robin Coles wrote:
> While the IFS code is under discussion, I'm writing a program to create
> a file on the IFS for emailing, and have shamelessly plagiarised Scott's
> code, which works fine, but....
>
> If I open the file as:
> c eval oflag = O_CREAT+O_WRONLY + O_CODEPAGE
>
> ** set mode to All
>
> c eval omode = S_IRWXU + S_IRWXG + S_IRWXO
>
> c eval fd = open(p_filename: oflag: omode:
> c CP_ASCII)
>
> I was expecting the file to be created if it didn't exist, and
> completely overwritten if it did.
>
> I ran it once and the file was created OK. I inserted 2 extra lines
> using EDTF and ran it again, and it's effectively updated the existing
> lines (it writes a timestamp so I know I'm not going completely mad) and
> left the manually inserted lines there.
>
> Is this correct? If so, I'll add an unlink() but I didn't think that
> would be needed.
>
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.