From: seolheui, kim Date: Fri, 28 Dec 2018 01:38:47 +0000 (+0900) Subject: Fix write build error X-Git-Tag: submit/tizen_4.0/20181228.090903~2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F71%2F196371%2F1;p=platform%2Fcore%2Fsecurity%2Fode.git Fix write build error Change-Id: I9d19a4ade99aa43a49fa06d873eb8fcc42efdc74 Signed-off-by: seolheui, kim --- diff --git a/server/file-sink.cpp b/server/file-sink.cpp index ebd2da1..50b86d1 100644 --- a/server/file-sink.cpp +++ b/server/file-sink.cpp @@ -93,7 +93,21 @@ void FileLogSink::write(const std::string &message) + std::to_string(tm.tm_sec) + "] "); log.append(message); - ::write(fd, log.c_str(), log.size()); + + size_t written = 0, size = log.size(); + const char *data = log.c_str(); + + while (written < size) { + int bytes = ::write(fd, data + written, size-written); + if (bytes >= 0) { + written += bytes; + } else if (errno == EAGAIN || errno == EWOULDBLOCK || errno == EINTR) { + continue; + } else { + std::cerr << "Failed to write log" << std::endl; + break; + } + } ::sync(); }