↑: "[[42-ExtenalFunctions]]"
##### ![[write()-書式]]
##### 説明
- write関数はファイルディスクリプタ(fd)にbufの内容をcount分書き込む関数です [[writeはbufの内容をfdにcount分書き込む|Rpcc]] [[writeはcountバイト書き込む|Rw6h]] [[writeはbufのメモリ領域を書き込む|Rni2]]
- 書き込みに成功した場合書き込んだバイト数を返します [[writeは書き込まれたバイト数を返す|Re23s]] [[writeの返り値は実際に書き込んだバイト数を返す|Root]]
- 書き込みがエラーになった場合は-1を返します[^1] [[writeが-1を返した場合はエラー|Ru2k]]
- 通常`返り値 = count`ですが以下のような理由で`返り値 < count`になる場合があります [[書き込まれるバイト数はcountよりも小さくなることがある|Rkgn]]
- fd先のメディアに十分な領域がない
- [[RLIMIT_FSIZE]]に達した
- 書き込み中にシグナルハンドラで割り込まれた
> [!quote] [[write]]
##### ![[write()-使用例]]
%% DATAVIEW_PUBLISHER: start
```dataview
TABLE WITHOUT ID
file.link as child,
aliases[0] as alias
from "zk/core"
where meta(up).path = this.file.path
SORT file.mtime ASC
```
%%
| child | alias |
| ----------------------------------------- | ----- |
| [[zk/core/write()-書式.md\|write()-書式]] | Cpz4 |
| [[zk/core/write()-使用例.md\|write()-使用例]] | Ctke |
| [[zk/core/RLIMIT_FSIZE.md\|RLIMIT_FSIZE]] | Cxr4 |
%% DATAVIEW_PUBLISHER: end %%
[^1]: どんなエラーかの判別はerrnoから確認できますが、errnoは内部でグローバル変数を利用しているため、課題によって使用できない可能性がある点にはご注意ください。