이 코드 세그먼트가이 출력을 제공하는 이유는 무엇입니까? 나는 패킷 수를 늘려야한다. 수신기네트워크상의 C에서 형식 문자열 오류
while(1) {
if(argv[3]) {
strcpy(buf, argv[3]);
} else {
msg = "This is a UDP test string! (packet %d)\n", ++pktcnt;
strcpy(buf, msg);
}
ret = sendto(udpSocket, buf, strlen(buf)+1, 0, (struct sockaddr*)&udpServer, sizeof(udpServer));
if(ret == -1) {
fprintf(stderr, "Could not send message!\n");
return -1;
} else {
printf("Message sent. (packet %d)\n", pktcnt);
}
sleep(1);
}
출력 :
This is a UDP test string! (packet %d)
This is a UDP test string! (packet %d)
This is a UDP test string! (packet %d)
는 분명히 형식 문자열에 문제가있는 것입니다하지만 난 그것을 알아낼 질수 : | 이것은 단순한 오류라고 확신하지만 아직 C가 너무 많다는 것을 모릅니다. 이것은 파이썬에서도 작동합니다!
'msg = "string", argument'는 당신이 생각하는대로하지 않습니다. 'sprintf'를 찾는다. (그리고, 가급적이면'snprintf'를 찾는다.) – usr2564301