Sun Studio 12 Update 1: C++ ユーザーズガイド

A.2.91 -sync_stdio=[yes| no]

C++ の iostream と C の stdio の同期が原因で実行時のパフォーマンスが低下する場合は、このオプションを使用してください。同期が必要なのは、同じプログラム内で iostream を使って cout に書き込み、stdio を使って stdout に書き込みを行う場合だけです。C++ 規格では同期が求められており、このため C++ コンパイラはデフォルトで同期を有効にします。ただし、しばしば、アプリケーションのパフォーマンスは同期なしの方が良くなることがあります。cout と stdout の一方にしか書き込みを行わない場合は、-sync_stdio=no オプションを使って同期を無効にすることができます。

A.2.91.1 デフォルト

-sync_stdio を指定しなかった場合は、-sync_stdio=yes が設定されます。

次に例を示します。

次の例を考えてみましょう。


#include <stdio.h>
#include <iostream>
int main()
{
   std::cout << "Hello ";
   printf("beautiful ");
   std::cout << "world!";
   printf("\n");
}

同期が有効な場合は、1 行だけ出力されます。


Hello beautiful world!
:

同期なしの場合、出力が混乱します。

警告

このオプションは、ライブラリではなく実行可能ファイルのリンクでのみ有効です。