Ich erhalte von Sockel A und schreibe das auf Socket B im laufenden Betrieb (wie ein Proxy-Server könnte). Ich möchte Daten, die durchgehen, untersuchen und möglicherweise ändern. Meine Frage ist, wie man mit Grenzfällen umgehen soll, dh wo der reguläre Ausdruck, nach dem ich suche, zwischen zwei aufeinander folgenden Lese- und Socket-B-Schreibiterationen passen würde.Überprüfen von C-Pipelines durch ein Programm - Grenzfälle
char buffer[4096]
int socket_A, socket_B
/* Setting up the connection goes here */
for(;;) {
recv(socket_A, buffer, 4096, 0);
/* Inspect, and possibly modify buffer */
send(socket_B, buffer, 4096, 0);
/* Oops, the matches I was looking for were at the end of buffer,
* and will be at the beginning of buffer next iteration :(*/
}