0

こんにちは、単純な問題だと思いますが、理解できません。ここに私のコードスニペットがあります

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);
}

前もって感謝します

4

0 に答える 0