嗨,我想我有一个简单的问题,但我无法弄清楚。这是我的代码片段
void makefilerequest(){
int n;
char buffer[256];
char file[] = "test.txt";
printf("Enter file: ");
bzero(file, 256);
//fgets(buffer, 255, stdin);
n = write(sockfd, file, strlen(file));
if( n < 0)
error("ERROR writing to socket");
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("%s\n",buffer);
}
我的问题是当我尝试设置一个包含要写入套接字的信息的 char[] 时,我的程序不会向前移动它会停止在n = write(sockfd, file, strlen(file));
. 但是,当我test.txt
从标准输入中读取它时,它可以工作并且我的程序会执行。如果我进行以下更改,它可以工作,但我不想通过标准输入将信息传递给它。
void makefilerequest(){
int n;
char buffer[256];
char file[] = "test.txt";
printf("Enter file: ");
bzero(buffer, 256);
fgets(buffer, 255, stdin);
n = write(sockfd, buffer, strlen(buffer));
if( n < 0)
error("ERROR writing to socket");
bzero(buffer,256);
n = read(sockfd,buffer,255);
if (n < 0)
error("ERROR reading from socket");
printf("%s\n",buffer);
}
提前致谢