Rechercher une page de manuel

Chercher une autre page de manuel:

wprintf

Autres langues

Langue: ja

Version: November 20, 1999 (mandriva - 01/05/08)

Section: 3 (Bibliothèques de fonctions)

名前

wprintf, fwprintf, swprintf, vwprintf, vfwprintf, vswprintf - ワイド文字を フォーマットして出力する

書式

 #include <stdio.h>
 #include <wchar.h>
 
 int wprintf(const wchar_t *format, ...);
 int fwprintf(FILE *stream, const wchar_t *format, ...);
 int swprintf(wchar_t *wcs, size_t maxlen,
              const wchar_t *format, ...);
 
 #include <stdarg.h>
 
 int vwprintf(const wchar_t *format, va_list args);
 int vfwprintf(FILE *stream, const wchar_t *format, va_list args);
 int vswprintf(wchar_t *wcs, size_t maxlen,
               const wchar_t *format, va_list args);
 

説明

wprintf() ファミリーの関数は printf(3) ファミリーの関数の ワイド文字版である。これらはワイド文字をフォーマットして出力する。

wprintf() と vwprintf() 関数は stdout に出力を行なう。 stdout がバイト単位入出力であってはいけない。より詳しい説明は fwide(3) 関数を参照すること。

fwprintf() と vfwprintf() 関数は stream にワイド文字出力 を行なう。 stream がバイト単位入出力であってはいけない。 より詳しい説明は fwide(3) 関数を参照すること。

swprintf() と vswprintf() 関数はワイド文字の配列に ワイド文字出力を行なう。プログラマーは wcs に最低でも maxlen 文字のワイド文字を出力できる空きがあることを保証しなければ ならない。

これらの関数は printf(3), vprintf(3), fprintf(3), vfprintf(3), sprintf(3), vsprintf(3) 関数に似ているが以下の 点で異っている。

format がワイド文字列で与えられる。
出力がバイトではなくワイド文字で構成される。
swprintf() と vswprintf() は maxlen 引き数を取るが、 sprintf() と vsprintf() は取らない (snprintf() と vsnprintf() は maxlen 引き数を取るが これらの関数が Linux では、バッファーが溢れた場合でも -1 を返さない)。

cs 変換文字の扱いが異っている:

c
もし l 修飾子が存在しない場合は int 引き数は btowc(3) 関数によってワイド文字に変換される。そして結果のワイド文字が出力される。 l 修飾子が存在する場合は wint_t (ワイド文字)引き数が出力される。
s
もし l 修飾子が存在しない場合、 ``const char *'' 引き数は初期状態より始まるマルチバイト文字列を含んだ char 型の配列へのポインター(文字列へのポインター)とみなされる。 配列の文字は(最初のバイト前に初期状態で変換を開始し、それぞれの文字を mbrtowc(3) 関数によって)ワイド文字へと変換される。結果のワイド文字は終端の ナルワイド文字の手前までが書き込まれる。精度(precision)が指定された 場合、指定された数字を超えるワイド文字は書き込まれない。精度は 書き込まれる バイト 数や 画面上の位置 ではなく ワイド文字 の数を指定することに注意すること。 精度がない場合には配列の終端にナル文字を含む必要がある。 精度を指定する場合には、配列の最後に到着する前に変換されたワイド文字の 数がそれに到達するよう、精度は十分に小さな数でなければならない。 もし l 修飾子が存在する場合、 ``const wchar_t *'' 引き数はワイド文字の配列へのポインターとみなされる。 配列のワイド文字列は終端のナルワイド文字の手間まで出力される。 もし精度が指定された場合には指定された精度以上の文字は出力されない。 精度を指定しない場合には終端のナルワイド文字を含む必要がある。 精度を指定する場合にはそれはワイド文字の配列の大きさよりも小さくな ければならない。

返り値

これらの関数は書き込まれたワイド文字の文字数を返す。 swprintf() と vswprintf() 関数の場合は 終端のナルワイド文字は含まない。エラーが起こった場合は -1 を返す。

準拠

C99.

注意

wprintf() 等の動作は現在のロケールの LC_CTYPE カテゴリに依存している。

format 文字列が ASCII 以外のワイド文字を含んでいる場合、 実行時のロケールの LC_CTYPE カテゴリがコンパイル時の LC_CTYPE カテゴリと 一致している場合にのみプログラムは正常に動作する。これは wchar_t の表現がロケールやプラットホームに依存していることに原因がある。 ( GNU libc ではワイド文字として Unicode (ISO-10646) のコードポイントを 使用している。他のプラットホームではそうではない。同様に ISO C99 の \unnnn 形式の汎用文字名称はこの問題を解決しない。) このため国際化されたプログラムでは format 文字列を ASCII ワイド 文字のみにするか、実行時に国際化された方法で構成する必要がある (例えば gettext() と iconv() や mbstowcs() を組み合わて使用する)。

関連項目

fprintf(3), fputwc(3), fwide(3), printf(3), snprintf(3)
Je ne compte pas mettre la société en bourse. Pas d'actionnaires.
La bourse pour moi, c'est de l'argent fictif. Il n'est pas
normal que je prenne ce 'racourci' qui me donnerait en quelques
jours des milliards grâce à ma cote qui monterait au début,
qui resterait stable et qui me foutrait sur la paille 5 ans
après, sans crier gare, comme c'est le cas aujourd'hui
avec toutes ces sociétés qui font faillites, ou de ces
présidents qui ne le sont plus parce que des associés se sont
joints et possèdent maintenant 51% de la société en actions
et donc le pouvoir. Au lieu de me mettre en bourse, je vais
investir dans l'immobilier. Chaque employé engagé dans la
société sera responsable de 5 locataires louant un appart
à 500 Euros par mois. Ceci donne 500 Euros * 5 = 2500 Euros/mois.
c'est à dire, le salaire de cet employé. L'employé sera
donc payé avec l'argent de ses loyés, ce qui évite qu'il ne
soit viré si la société est dans une mauvaise passe, puisque
de toute façon, ses appartements "assurent" cet employé et
pour être franc, chez moi on ne parlera pas d'employés mais
d'agents parce qu'un employé, ca ressemble trop à du bétail.
Je veux les appeler des agents, et leur laisser la possibilité
de créer des sous-sociétés à ma future société mère, ou leur
laisser la possiblité de travailler dans un secteur différent
de la société chaque fois qu'ils le souhaiteraient. La société
a une sous-société sur le vin parce qu'un agent a eu la
bonne idée de la créer ? Eh ben pourquoi ne pas le rejoindre !
Si chaque agent peut "changer" son métier tout en restant
dans la même société, il obtient toujours des "points"
d'ancienneté et est donc de plus en plus payé/augmenté
et connaît de plus en plus comment fonctionne la société mère.
Pourquoi attendre d'avoir 40 ans pour créer sa société et
pourquoi travailler jusqu'à tes 40 ans pour avoir l'argent
nécessaire à la création de ta société alors que finalement,
tes idées, tu les as déjà, tout ce qu'il te faut, c'est
quelqu'un qui croit en toi. Ma société mère pourrait croire
en toi par exemple ( une fois qu'elle sera là tout de même )
et pourrait te donner le financement nécessaire. Pourquoi
dire aux jeunes d'aujourd'hui "arrête de rêver" ? C'est en
rêvant qu'on arrive. Regarde moi ! Tu crois que MultiDeskOS
est né d'hier ? Certainement pas ! Le premier système que
j'ai créé ( et qui était finalement la base de MultiDeskOS )
était ce système domotique JSI connecté au joystick et
je n'avais alors que 16 ans ! Tu te rend compte ! Presque 10
ans que je pourrais avoir ma société ou ma sous-société si
quelqu'un avait cru en moi. Je veux donc de mon coté, assurer
mes agents pour qu'ils ne doivent jamais être virés et
leur permettre de faire un peu de tout et n'importe quoi,
tout en gardant disons 70% d'activité pour la société mère,
en tout cas dans un premier temps. Sa sous société fait
faillite sur le vin parce que ca n'intéresse pas les gens ?
Pas de problème ! On supprime simplement cette sous-société
et on transfère les agents qui travaillaient dedans dans une
autre sous-société ou on les transfère dans la société mère
pour qu'ils retrouvent de nouvelles idées MAIS ILS
NE SONT JAMAIS VIRES ! S'auf s'ils font des conneries
et qu'ils le savent, alors là, je les fou dehors pour
assurer la stabilité des autres agents. Enfin voilà.
-- Jayce - Social. --