
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