www.delorie.com/archives/browse.cgi | search |
X-Spam-Check-By: | sourceware.org |
To: | cygwin AT cygwin DOT com |
From: | Eric Blake <ebb9 AT byu DOT net> |
Subject: | Re: [Spam?]Re: problem concating (>>) to a large file |
Date: | Tue, 29 May 2007 16:11:40 +0000 (UTC) |
Lines: | 33 |
Message-ID: | <loom.20070529T180537-567@post.gmane.org> |
References: | <001201c79ea3$4d82bce0$8500a8c0 AT RUSNAK> <4656D47E DOT 5050906 AT byu DOT net> <001201c79f49$b57b3c90$8500a8c0 AT RUSNAK> <46582F2B DOT 2000300 AT byu DOT net> <000001c7a1d8$c2178e40$8500a8c0 AT RUSNAK> <loom DOT 20070529T161539-287 AT post DOT gmane DOT org> <loom DOT 20070529T172200-251 AT post DOT gmane DOT org> <20070529155024 DOT GE6003 AT calimero DOT vinschen DOT de> |
Mime-Version: | 1.0 |
User-Agent: | Loom/3.14 (http://gmane.org/) |
X-IsSubscribed: | yes |
Mailing-List: | contact cygwin-help AT cygwin DOT com; run by ezmlm |
List-Id: | <cygwin.cygwin.com> |
List-Subscribe: | <mailto:cygwin-subscribe AT cygwin DOT com> |
List-Archive: | <http://sourceware.org/ml/cygwin/> |
List-Post: | <mailto:cygwin AT cygwin DOT com> |
List-Help: | <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs> |
Sender: | cygwin-owner AT cygwin DOT com |
Mail-Followup-To: | cygwin AT cygwin DOT com |
Delivered-To: | mailing list cygwin AT cygwin DOT com |
Corinna Vinschen <corinna-cygwin <at> cygwin.com> writes: > > > > assert (0 == lseek (open("existing", O_WRONLY | O_APPEND), 0, SEEK_CUR)); > > Can you give me a pointer? http://www.opengroup.org/onlinepubs/009695399/functions/open.html "The file offset used to mark the current position within the file shall be set to the beginning of the file." This is stated prior to any mention of O_APPEND, and O_APPEND does not change that statement. And for O_APPEND|O_RDWR, it is a necessity. Later, in http://www.opengroup.org/onlinepubs/009695399/functions/write.html: "If the O_APPEND flag of the file status flags is set, the file offset shall be set to the end of the file prior to each write and no intervening file modification operation shall occur between changing the file offset and the write operation." so: int fd = open("existing", O_WRONLY | O_APPEND); assert (0 == lseek (fd, 0, SEEK_CUR); if (write (fd, " ", 1) > 0) { assert (0 != lseek (fd, 0, SEEK_CUR)); assert (lseek (fd, 0, SEEK_CUR) == lseek (fd, 0, SEEK_END)); } -- Eric Blake -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/
webmaster | delorie software privacy |
Copyright © 2019 by DJ Delorie | Updated Jul 2019 |