【发布时间】:2010-10-21 15:12:21
【问题描述】:
这是我想要读取文件的函数代码:
int sendByByte(int filed,int sockfd,int filesize)
{
int i=0;
int sent=0;
char buf[BUFSIZE];
while(i<filesize)
{
printf("fd is : %d\n",filed);
printf("i: %d\n",i);
int byte_read=read(filed,buf,BUFSIZE);
if(byte_read == -1)
{
printf("MOSHKEL dar read\n");
return -1;
}
int byte_send=send(sockfd,buf,byte_read,0);
if(byte_send==-1)
{
printf("MOSHKEL dar send\n");
return -1;
}
close(filed);
i+=byte_read;
sent+=byte_read;
}
return sent;
}
问题是当i=0 工作并读取文件但随后read() 返回-1。
代码有什么问题?
-
socketfd=> 服务器的套接字 -
filed=> 文件描述符
我确定文件描述符是有效的。
【问题讨论】:
-
欢迎来到 SO。这个问题与 C 本身无关,文件描述符是一种操作系统特性。请相应地更改您的问题的标题和标签。
标签: c posix file-descriptor