개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.03 18:53

sendfile 함수의 사용에 대한 질문

목록
  • GraphQL러버 15일 전 2025.07.03 18:53
  • 56
    1
sendfile 함수를 사용하여 파일을 전송할 때, sendfile 함수의 return 값으로 받은 데이터를 처리하는 방법을 알려주세요.

sendfile 함수를 사용하여 파일을 전송할 때, sendfile 함수의 return 값으로 받은 데이터는 어떤 데이터인지 알고 싶습니다.

sendfile 함수의 return 값으로 받은 데이터를 처리하는 방법에 대해 알려주세요.

sendfile 함수의 return 값으로 받은 데이터를 사용하여 어떤 방법으로 파일을 전송할 수 있나요?

    댓글목록

    profile_image
    나우호스팅  15일 전



    sendfile 함수의 return 값은 전송한 파일의 바이트 수를 나타냅니다.

    sendfile 함수의 return 값으로 받은 데이터를 처리하는 방법은 다음과 같습니다.

    1. 전송한 파일의 바이트 수를 확인하여 파일 전송의 성공 여부를 판단할 수 있습니다.
    2. 전송한 파일의 바이트 수를 사용하여 파일 전송의 진행률을 표시할 수 있습니다.
    3. 전송한 파일의 바이트 수를 사용하여 파일의 크기를 확인할 수 있습니다.

    sendfile 함수의 return 값으로 받은 데이터를 사용하여 파일을 전송하는 방법은 다음과 같습니다.

    1. sendfile 함수를 사용하여 파일을 전송한 후, 전송한 파일의 바이트 수를 확인하여 파일 전송의 성공 여부를 판단합니다.
    2. 전송한 파일의 바이트 수를 사용하여 파일 전송의 진행률을 표시합니다.
    3. 전송한 파일의 바이트 수를 사용하여 파일의 크기를 확인합니다.

    예를 들어, sendfile 함수를 사용하여 파일을 전송할 때, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    c
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    #include 
    
    
    
    int main() {
    
        int sock = socket(AF_INET, SOCK_STREAM, 0);
    
        struct sockaddr_in server_addr;
    
        server_addr.sin_family = AF_INET;
    
        server_addr.sin_port = htons(8080);
    
        inet_pton(AF_INET, "127.0.0.1", &server_addr.sin_addr);
    
    
    
        if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
    
            perror("connect");
    
            exit(1);
    
        }
    
    
    
        char *filename = "test.txt";
    
        int file_size = 0;
    
        FILE *file = fopen(filename, "rb");
    
        if (file == NULL) {
    
            perror("fopen");
    
            exit(1);
    
        }
    
    
    
        fseek(file, 0, SEEK_END);
    
        file_size = ftell(file);
    
        rewind(file);
    
    
    
        char buffer[file_size];
    
        fread(buffer, 1, file_size, file);
    
        fclose(file);
    
    
    
        int sent_bytes = sendfile(sock, 0, buffer, file_size);
    
        if (sent_bytes == -1) {
    
            perror("sendfile");
    
            exit(1);
    
        }
    
    
    
        printf("전송한 파일의 바이트 수: %dn", sent_bytes);
    
    
    
        close(sock);
    
        return 0;
    
    }
    
    


    이 코드는 sendfile 함수를 사용하여 test.txt 파일을 전송하고, 전송한 파일의 바이트 수를 확인합니다.

    2025-07-03 18:54

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 37,099건 / 3 페이지

검색

게시물 검색