Den Mon, 31 May 2004 12:09:53 +0200 skrev skovge:
> Jeg har en char buffer der indeholder en tekststreng sendt fra en client til
> en server - jeg skal have fat i tegnet umiddelbart efter "userid=", og
> bruger nedenstående kode - det virker fint i compilet med bcb og kørt i
> windows, men i mit linux miljø vil den ikke godtage 'strncpy(userid,
> pointer2, 1)' - der får jeg en segmentationfault på min server - er der en
> enden måde at få værdien kopieret ned i 'userid' ???
>
> char buffer[10000], buffer2[100], userid[100];
> int uid;
>
> sprintf(buffer2, "userid=");
> pointer = strstr(buffer, buffer2);
> pointer2 = pointer + strlen(buffer2);
> //strncpy(userid, pointer2, 1);
> uid = atoi(userid);
strncpy(3):
The strncpy() function is similar, except that not more
than n bytes of src are copied. Thus, if there is no null
byte among the first n bytes of src, the result wil not be
null-terminated.
Det er nok nærmere atoi() der segfaulter ved at forsøge at læse til
\0 i userid, som ikke indeholder \0.
Mvh
Kent
--
Help test this great MMORPG game -
http://www.eternal-lands.com/