gcc printf conversion specification for struct timeval

P

PawelCarqowski

Hallo group members,
Do You know any conversion specification for this. I imagine:

struct timeval time;
printf("%T\n", time);

regards,
Pawel
 
S

santosh

PawelCarqowski said:
Hallo group members,
Do You know any conversion specification for this. I imagine:

struct timeval time;
printf("%T\n", time);

struct timeval is a GNU C extension. There are no specific format
specifiers for this but since the structure members are of type long
int you can use the 'ld' format specifier for printing them.

For furher GNU C related questions please ask in a GNU group or in a
Linux group.
 
D

Duncan Muirhead

Hallo group members,
Do You know any conversion specification for this. I imagine:

struct timeval time;
printf("%T\n", time);

regards,
Pawel
I use
printf( "%ld.%.6ld\n", time.tv_sec, time.tv_usec);
which produces output like
1194509197.415800
 
S

Spoon

santosh said:
struct timeval is a GNU C extension.

http://opengroup.org/onlinepubs/009695399/basedefs/sys/time.h.html

The <sys/time.h> header shall define the timeval structure that
includes at least the following members:

time_t tv_sec Seconds.
suseconds_t tv_usec Microseconds.

The time_t and suseconds_t types shall be defined as described
in <sys/types.h>.

time_t and clock_t shall be integer or real-floating types.

The type suseconds_t shall be a signed integer type capable of
storing values at least in the range [-1, 1000000].
There are no specific format specifiers for this [...]

Right.

(However, glibc does allow custom conversion specifiers.)

http://www.gnu.org/software/libc/manual/html_node/Customizing-Printf.html
but since the structure members are of type long int
you can use the 'ld' format specifier for printing them.

AFAIU, it is possible for time_t to be wider than long int, but
I'm not sure. Consider a platform where time_t is 64 bits wide
and long int is only 32 bits wide.
For furher GNU C related questions please ask in a GNU group
or in a Linux group.

comp.unix.programmer for Unix-related questions.
gnu.gcc.help for GCC-specific questions.
 
J

James Kuyper

Spoon wrote:
....
AFAIU, it is possible for time_t to be wider than long int, but
I'm not sure. Consider a platform where time_t is 64 bits wide
and long int is only 32 bits wide.

time_t can be any arithmetic type. It could even be _Imaginary; which
has some interesting :) implications.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,484
Members
44,903
Latest member
orderPeak8CBDGummies

Latest Threads

Top