On 2004-08-11 10:44, Mipam <[EMAIL PROTECTED]> wrote: > > You'd have to use strftime() and a local buffer for that. > > I found an example and adjusted it: > > #include <time.h> > #include <stdio.h> > > int main() > { > struct tm *ptr; > time_t tm; > char str[60]; > char str2[60]; > char str3[60]; > > tm = time(NULL)-86400; > ptr = localtime(&tm); > strftime(str ,100 , "%d",ptr); > strftime(str2 ,100 , "%m",ptr); > strftime(str3 ,100 , "%Y",ptr); > printf("%s %s %s\n",str3,str2,str); > > return 0; > } > > This runs just fine: 2004 08 10 > I dont know what the 100 is good for?
It's the size of the buffer that strftime() gets as the first argument. In this case 100 is a bug waiting to happen, because the buffers are allocated with only 60 bytes of data. The manpage of strftime() explains what each argument is supposed to be. $ man strftime > I compiled both with: cc -O3 -mcpu=pentiumpro -o time time.c > Both compile without errors. Note that -O3 might be a it unsafe on FreeBSD. Even -O2 is not always a good idea. _______________________________________________ [EMAIL PROTECTED] mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to "[EMAIL PROTECTED]"