+\fI/proc/[pid]/io\fP (since kernel 2.6.20)
+.\" commit 7c3ab7381e79dfc7db14a67c6f4f3285664e1ec2
+This file contains I/O statistics for the process, for example:
+.in +4n
+.nf
+
+#\fB cat /proc/3828/io\fP
+rchar: 323934931
+wchar: 323929600
+syscr: 632687
+syscw: 632675
+read_bytes: 0
+write_bytes: 323932160
+cancelled_write_bytes: 0
+.fi
+.in
+
+フィールドの詳細は以下の通りである。
+.RS
+.TP
+\fIrchar\fP: characters read
+The number of bytes which this task has caused to be read from storage.
+This is simply the sum of bytes which this process passed to \fBread\fP(2) and
+similar system calls. It includes things such as terminal I/O and is
+unaffected by whether or not actual physical disk I/O was required (the read
+might have been satisfied from pagecache).
+.TP
+\fIwchar\fP: characters written
+The number of bytes which this task has caused, or shall cause to be written
+to disk. Similar caveats apply here as with \fIrchar\fP.
+.TP
+\fIsyscr\fP: read syscalls
+Attempt to count the number of read I/O operations\(emthat is, system calls
+such as \fBread\fP(2) and \fBpread\fP(2).
+.TP
+\fIsyscw\fP: write syscalls
+Attempt to count the number of write I/O operations\(emthat is, system calls
+such as \fBwrite\fP(2) and \fBpwrite\fP(2).
+.TP
+\fIread_bytes\fP: bytes read
+Attempt to count the number of bytes which this process really did cause to
+be fetched from the storage layer. This is accurate for block\-backed
+filesystems.
+.TP
+\fIwrite_bytes\fP: bytes written
+Attempt to count the number of bytes which this process caused to be sent to
+the storage layer.
+.TP
+\fIcancelled_write_bytes\fP:
+The big inaccuracy here is truncate. If a process writes 1MB to a file and
+then deletes the file, it will in fact perform no writeout. But it will
+have been accounted as having caused 1MB of write. In other words: this
+field represents the number of bytes which this process caused to not
+happen, by truncating pagecache. A task can cause "negative" I/O too. If
+this task truncates some dirty pagecache, some I/O which another task has
+been accounted for (in its \fIwrite_bytes\fP) will not be happening.
+.RE
+.IP
+\fINote\fP: In the current implementation, things are a bit racy on 32\-bit
+systems: if process A reads process B's \fI/proc/[pid]/io\fP while process B is
+updating one of these 64\-bit counters, process A could see an intermediate
+result.
+.RE
+.TP