0
我可以使用套接字recv函數讀取stdin的輸入流。 即讀取Ctrl-C。使用套接字recv函數讀取標準輸入流
贊。
int dummy;
ssize_t bytes = recv (0 /* file descriptor for stdin*/ , &dummy, 1, MSG_PEEK);
if (bytes > 0 && dummy == 0x03)
return true; // Ctrl-C receive
else
return false; // Not
其實我使用龜etc功能通知CTRL-C讀取標準輸入流,但有時龜etc不通知任何CTRL-C。 如果我使用recv函數作爲與fgetc函數的分離,那麼每個通知CRTL-C的情況都將被處理。
所以我可以使用套接字recv函數來讀取stdin流嗎? 這是我通知CRTL-C事件的完整算法。
ssize_t bytes = recv (data->input, &dummy, 1, MSG_PEEK);
dummy1 = fgetc (stdin)
if ((dummy1 == 0x03) || (bytes > 0 && dummy == 0x03))
return true;
else
return false;
但我怎麼能使用ungetc函數或MSG_PEEK標誌像stdio上的讀/寫功能 – hmb
我建議你使用'std :: cin''s ['peek'](http://en.cppreference.com/w/cpp/io/basic_istream/peek)和['putback'](http://en.cppreference.com/w/cpp/io/basic_istream/putback),以及'std :: cout'輸出,並且對標準輸入/標準輸出I/O不使用'read' /'write'。 –