STL容器[34]
SERVER以读打开FIFO;
CLIENT以写打开FIFO;
SERVER关闭FIFO;
CLIENT向当前FIFO写数据,此时CLIENT获得一个SIGPIPE信号。如果忽略该信号,那么write将返回-1,ERRNO为EPIPE
向一个写打开,当对端已经关闭的
void doPIPE (int a)
{
std::cout << "A:" << a << std::endl;
}
int main()
{
std::cout << "PIPE_BUF:" << PIPE_BUF << std::endl;
struct sigaction sig;
sigemptyset(&sig.sa_mask);
sig.sa_handler = doPIPE;
sig.sa_flags = 0;
sigaction(SIGPIPE, &sig, NULL);
MT_Fifo c2s;
c2s.open(C2S_FIFO, MT_Fifo::EM_WRITE);
std::cout << "c2s fd:" << c2s.fd() << std::endl;
sleep(10);
std::cout << "To Send:" << std::endl;
int iRet = c2s.write(" ", 1);
std::cout << "Ret:" << iRet << "|Errno:" << errno << "|" << strerror(errno) << std::endl;
return 0;
}