× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Michael,

Can you explain what you're using ftruncate() for? This was the only part of your message I didn't understand. Just using it to clear the file (instead of O_TRUNC?)

The open/write/close APIs will not change your CRLF. If you are writing two characters (both CR and LF) then it may translate this to ASCII or something, but it won't ever remove one of them. (You may be thinking of the ANSI C fopen() API with the crln setting? But as that's not being used here, it can't come into play. The Unix open() API does not do this.)

My guess is that you are viewing the file in a Unix text editor. For that reason, you're seeing the carriage return on the screen (since Unix never expects a carriage return) but you're not seeing the LF because it's expected and is just treated as a line break. Could that be it? (That you are just confused by the way it looks on your screen, and both characters are there?)

Otherwise, please post your code -- I've been using these APIs for decades (and on Unix systems before that) and have never heard of them changing CRLF to just CR...

-SK


On 6/2/2015 9:11 PM, MichaelQuigley@xxxxxxxxxx wrote:
Hi folks,

I've got a program which opens, reads, scans the data modifying some of
the content, then writes and truncates a file in the IFS. It uses the
open, write, ftruncate, and close APIs. The open uses the o_TextData flag
so the CCSIDs are automatically converted for my program to manipulate the
data on the IBM i. Everything works great with the exception that the line
ending carriage-return and line feed (CRLF) is being changed. When I debug
the program and step through file scanning, the CRLF is being processed
correctly--i.e., I see the two bytes processed at the end of each line.
But when the file is re-written and closed, the CRLF is modified to simply
be a carriage-return.

This isn't a problem most of the time, but there are cases where the PC
program which later uses the processed data isn't recognizing the last
line of data since it doesn't end with CRLF. Is there an option I've
overlooked or something I can do to preserve the CRLF?

Thanks,
Michael Quigley
Computer Services
The Way International
www.TheWay.org


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

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.