From: Rolf K. <lab...@us...> - 2005-06-12 15:26:18
|
Update of /cvsroot/opengtoolkit/pipe/c_source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv30765/c_source Modified Files: client.c Log Message: Improved error handling Index: client.c =================================================================== RCS file: /cvsroot/opengtoolkit/pipe/c_source/client.c,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** client.c 12 Jun 2005 13:48:12 -0000 1.1 --- client.c 12 Jun 2005 15:26:09 -0000 1.2 *************** *** 12,47 **** VOID main(VOID) { ! CHAR chBuf[BUFSIZE]; ! DWORD dwRead, dwWritten; ! HANDLE hStdin, hStdout, hStderr; ! BOOL fSuccess; ! DebugBreaking(); ! hStdout = GetStdHandle(STD_OUTPUT_HANDLE); ! hStdin = GetStdHandle(STD_INPUT_HANDLE); ! hStderr = GetStdHandle(STD_ERROR_HANDLE); ! if ((hStdout == INVALID_HANDLE_VALUE) || ! (hStdin == INVALID_HANDLE_VALUE) || ! (hStderr == INVALID_HANDLE_VALUE)) ExitProcess(1); ! // Write welcome message to standard output. ! sprintf(chBuf, "Standard IO Loopback program\r\n9. June 2005\r\n"); ! fSuccess = WriteFile(hStdout, chBuf, strlen(chBuf), &dwWritten, NULL); ! if (!fSuccess) ExitProcess(2); ! for (;;) ! { // Read from standard input. fSuccess = ReadFile(hStdin, chBuf, BUFSIZE, &dwRead, NULL); if (! fSuccess || dwRead == 0) { ! DWORD err = GetLastError(); ! ! sprintf(chBuf, "error = %d, dwRead = %d\r\n", err, dwRead); ! WriteFile(hStderr, chBuf, strlen(chBuf), &dwWritten, NULL); ! break; } --- 12,48 ---- VOID main(VOID) { ! CHAR chBuf[BUFSIZE]; ! DWORD err, dwRead, dwWritten; ! HANDLE hStdin, hStdout, hStderr; ! BOOL fSuccess; ! DebugBreaking(); ! hStdout = GetStdHandle(STD_OUTPUT_HANDLE); ! hStdin = GetStdHandle(STD_INPUT_HANDLE); ! hStderr = GetStdHandle(STD_ERROR_HANDLE); ! if ((hStdout == INVALID_HANDLE_VALUE) || ! (hStdin == INVALID_HANDLE_VALUE)) ExitProcess(1); ! // Write welcome message to standard output. ! sprintf(chBuf, "Standard IO Loopback program\r\n9. June 2005\r\n"); ! fSuccess = WriteFile(hStdout, chBuf, strlen(chBuf), &dwWritten, NULL); ! if (!fSuccess) ExitProcess(2); ! for (;;) ! { // Read from standard input. fSuccess = ReadFile(hStdin, chBuf, BUFSIZE, &dwRead, NULL); if (! fSuccess || dwRead == 0) { ! err = GetLastError(); ! if (err != ERROR_BROKEN_PIPE && hStderr != INVALID_HANDLE_VALUE) ! { ! sprintf(chBuf, "error = %d, dwRead = %d\r\n", err, dwRead); ! WriteFile(hStderr, chBuf, strlen(chBuf), &dwWritten, NULL); ! } ! break; } *************** *** 50,58 **** if (!fSuccess) { ! DWORD err = GetLastError(); ! ! sprintf(chBuf, "error = %d, dwRead = %d\r\n", err, dwRead); ! WriteFile(hStderr, chBuf, strlen(chBuf), &dwWritten, NULL); ! break; } } --- 51,61 ---- if (!fSuccess) { ! err = GetLastError(); ! if (err != ERROR_BROKEN_PIPE && hStderr != INVALID_HANDLE_VALUE) ! { ! sprintf(chBuf, "error = %d, dwRead = %d\r\n", err, dwRead); ! WriteFile(hStderr, chBuf, strlen(chBuf), &dwWritten, NULL); ! } ! break; } } |