Jens Rehsack <rehsack(at)liwing.de> writes:
>> auf. Unter Linux funktioniert das aber ein strace unter BSD zeigt
>> mir
>> bind(0, {sa_family=AF_UNIX, path="dev/cg"}, 8)
> Hm, ist mir eigendlich ein Rätsel. Die Bibliotheksfunktion
> strncpy(3) müsste den String eigendlich komplett kopieren,
Ja, mir auch, zumal ich jetzt gerade noch festgestellt habe, dass
das Verhalten auch noch von sa_family abhängig ist. Damit das
Programm richtig arbeitet musste ich gerade folgenden Hack
produzieren:
if (sa->sa_family=AF_INET) {
if (-1 == bind (sockfd, sa, socksize))
die2 ("bind");
}
else if (sa->sa_family=AF_UNIX)
{
if (-1 == bind (sockfd, sa, socksize+1))
die2 ("bind");
} else {
....
> bins(2) nachsehen. Müsste irgendwo unter /usr/src/lib/libc
> zu finden sein.
Ja, werde ich mal tun.
> Wahrscheinlich, weil das abschließende '\0' zu einem
> null terminierten String gehört.
Ja, aber das wären dann eben 8 und nicht 9 Byte.
Bis dann
Matthias
-- Matthias Teege -- http://www.mteege.de make world not war To Unsubscribe: send mail to majordomo.FreeBSD.org with "unsubscribe de-bsd-questions" in the body of the messageReceived on Sat 08 Nov 2003 - 13:15:24 CET