This is the mail archive of the cygwin mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Cygwin strptime() is missing "%s" which strftime() has


On 23.07.2017 19:09, Lavrentiev, Anton (NIH/NLM/NCBI) [C] wrote:
But that's just scanning a decimal integer to time_t.

It's not a question of whether I can or can't convert a string into an
integer, rather it's a question about portability of code that uses %s
for both functions and expects it to work unchanged in the Cygwin
environment.  Also, strptime() was designed to be a reversal to
strftime() (from the man-pages: the  strptime() function is the
converse function to strftime(3)) so both are supposed to "understand"
the same basic set of formats.  Because of Cygwin's strptime() missing
"%s", the following also does not work even from command line:

$ date +"%s" | strptime "%s"
strptime: cannot make sense of `1500861577' using the given input formats

There is no %s in POSIX. It is a GNU C library extension. Thus this is
only a matter of compatibility between Cygwin and GNU/Linux (and portability
between those systems).

Linux compatibility *is* an explicit goal of the Cygwin project. If %s works
on Linux but not Cygwin, in that moment you're not getting quite that
"Linux feeling" on Windows.


--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]