Возможно, потому что это не делает то, что вы думали:
memset(buf,0,sizeof(1024*1024*1024));
sizeof(1024*1024*1024)
- это 4 на моем компиляторе. Я думаю, что вы имели в виду:
memset(buf,0, 1024*1024*1024);
Из кода, который вы публикуете buf
не используется, поэтому неясно, что вы пытаетесь сделать или почему. Но это, по крайней мере, неправильно ....