|
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-2024 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.