With unlimited binary data there are no other way than external end or time out.
If data is #13#13 the thing is clear and no extras are needed.
On the other hand if data is #0#0#0 there is no way to know when it ends without something external.
Trigger from NI-488.2M manual
Send(0, fluke, "VAC; AUTO; TRIGGER 2; *SRE 16", 29L, NLend);
sum = 0.0;
for (m=0; m < 10 ; m++) {
Send(0, fluke, "*TRG; VAL1?", 11L, NLend); // Trigger the Fluke
WaitSRQ(0, &SRQasserted); // Wait for the Fluke to assert SRQ
ReadStatusByte(0, fluke, &statusByte); // Be sure that the MAV is set
Receive(0, fluke, buffer, 10L, STOPend); // Read the measurement
buffer[ibcnt] = '\0';
printf("Reading : %s\n", buffer);
sum = sum + atof(buffer);
}
ibwrt (dmm, "F1R0S2T4", 8);
for (sum=0, x=0; x <= 10; x++) {
ibtrg (dmm);
ibrd (dmm, rd, 13);
sum = sum + atof(rd);
}
STOPend(int) is defined as EOI or EOS, 0x0 - 0xff there will terminate there.
Second code is getting 13 bytes.