Thanks as always, Guy. I'm sure it's going to be something LIKE that, and I'll do that from now on, but I don't think it's the problem in THIS case.
It seems like sprintf really doesn't like guint64 for some reason. So if instead I do: last_fh_hash=8000; sprintf (mystring+strlen(mystring), "FH: 0x%08x Offset: %lu Length: %u, test4:%u, test5:%u, test6:%u", last_fh_hash, file_offset, 3, 4, 5, 6); ...Then I get: LOCK FH: 0x7a974bdc Offset: 8000 Length: 8000 test4: 3 test5: 4 test6: 5 At first I thought the guint64 was spilling over, but it looks like it's actually being write twice, and sprintf is getting confused about what to write where. g_sprintf has the same problem as well. Bizarre. Thanks, Ian On Wed, Jun 2, 2010 at 2:44 PM, Guy Harris <[email protected]> wrote: > > On Jun 1, 2010, at 9:01 PM, Ian Schorr wrote: > >> The weird thing is that when I do this: >> >> sprintf (mystring, "%s FH: 0x%08x Offset: %lu Length: %lu", >> mystring,last_fh_hash,file_offset,lock_length); > > From ANSI(R) X3.159-1989, American National Standard for Information Systems > -- Programming Language -- C: > > 4.9.6.5 The sprintf function > > ... > > ... If copying takes place between objects that overlap, the behavior > is undefined. > > Translation: don't do that. > >> sprintf (mystring, "%s FH: 0x%08x", mystring,last_fh_hash); >> sprintf (mystring, "%s Offset: %u", mystring,file_offset); >> sprintf (mystring, "%s Length: %u", mystring,lock_length); > > Don't do that, either, even if you happen to be lucky enough, on a particular > platform, that it happens to do what you want to do; that's an accident of > the sprintf() implementation on the OS/compiler combination you're using. > > If you want to append to a string, make the target of the sprintf the > location of the trailing '\0'. > ___________________________________________________________________________ > Sent via: Wireshark-dev mailing list <[email protected]> > Archives: http://www.wireshark.org/lists/wireshark-dev > Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev > mailto:[email protected]?subject=unsubscribe > ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <[email protected]> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:[email protected]?subject=unsubscribe
