Output line-buffered or packet-buffered

"-l" option is used to specify output line-buffered. On Unix-like Operating Systems, setvbuf() or setlinebuf() will be used (code is here):

        ......
        case 'l':
#ifdef _WIN32
            /*
             * _IOLBF is the same as _IOFBF in Microsoft's C
             * libraries; the only alternative they offer
             * is _IONBF.
             *
             * XXX - this should really be checking for MSVC++,
             * not _WIN32, if, for example, MinGW has its own
             * C library that is more UNIX-compatible.
             */
            setvbuf(stdout, NULL, _IONBF, 0);
#else /* _WIN32 */
#ifdef HAVE_SETLINEBUF
            setlinebuf(stdout);
#else
            setvbuf(stdout, NULL, _IOLBF, 0);
#endif
#endif /* _WIN32 */
            break;
        ......

tcpdump can also output packet-buffered through "-U/--packet-buffered" option and call pcap_dump_flush API.

results matching ""

    No results matching ""