>попробовал сделать так:
>MAXDATA=2000;
>for (;;){
> numbytes=recv(sockfd,line,sizeof(line)-1,0);
> line[numbytes]='\0';
> fprintf(res_fd,"%s",line);
> if (numbytes<=0){
> break;
> }
> printf("%d-%d\n",numbytes,strlen(line));
>}
>
>Теперь файл записывается, но не полностью... Тоесть файл занимает 3954, а сервер
>отдает 2965 вместе с заголовками...
/tmp % cat ex.c
#include <fcntl.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int
main() {
int fd, l;
char buf[BUFSIZ] = { 0 };
if (-1 == (fd = open("/bin/ls", O_RDONLY)))
{
perror("open failed");
exit(EXIT_FAILURE);
}
l = read(fd, buf, BUFSIZ);
fprintf(stderr, "%d vs %d\n", l, strlen(buf));
close(fd);
return 0;
}
/tmp % gcc ex.c -o ex
/tmp % ./ex
1024 vs 8
/tmp % hd -C /bin/ls | head -1
00000000 7f 45 4c 46 01 01 01 09 00 00 00 00 00 00 00 00 |.ELF............|
/tmp %
На мысли наводит ?
/me не Це программист...
|