Skip to contentSkip to conversation

opensm/main.c: force stdout to be line-buffered

PATCH Applied Yevgeny Kliteynik 2 participants 2 messages Jun 10, 2010 – Jun 17, 2010 1 message not in the archive InfiniBand

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 opensm/main.c: force stdout to be line-buffered

When stdout is assigned to a terminal, it is line-buffered. But when opensm's stdout is redirected to a file, stdout becomes block-buffered, which means that '\n' won't cause the buffer to be flushed.

Forcing stdout to always be line-buffered and to have a more predictable behavior when used as "opensm > some_file".

---

Changes since V1:
- replacing setlinebuf() with an ANSI C compliant setvbuf()
- Note: similar patch for ibv_asyncwatch was accepted by Roland:

      http://www.mail-archive.com/[email protected]/msg04161.html
 opensm/opensm/main.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
opensm/opensm/main.c +3 -0
index 0093aa7..6e6c733 100644
@@ -618,6 +618,9 @@ int main(int argc, char *argv[])
 		{NULL, 0, NULL, 0}	/* Required at the end of the array */
 	};
 
+	/* force stdout to be line-buffered */
+	setvbuf(stdout, NULL, _IOLBF, 0);
+
 	/* Make sure that the opensm and complib were compiled using
 	   same modes (debug/free) */
 	if (osm_is_debug() != cl_is_debug()) {
Signature · 7 lines
1.5.1.4


--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): [email protected]

#2 lore raw
Quoted 9 lines · Yevgeny Kliteynik

When stdout is assigned to a terminal, it is line-buffered. But when opensm's stdout is redirected to a file, stdout becomes block-buffered, which means that '\n' won't cause the buffer to be flushed.

Forcing stdout to always be line-buffered and to have a more predictable behavior when used as "opensm > some_file".

Applied. Thanks.

Sasha
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html