{
    "mode": "man",
    "parameter": "proc_pid_io",
    "section": "5",
    "url": "https://www.chedong.com/phpMan.php/man/proc_pid_io/5/json",
    "generated": "2026-10-08T12:42:25Z",
    "sections": {
        "NAME": {
            "content": "/proc/pid/io - I/O statistics\n",
            "subsections": []
        },
        "DESCRIPTION": {
            "content": "/proc/pid/io (since Linux 2.6.20)\nThis file contains I/O statistics for the process and its waited-for children, for ex‐\nample:\n\n# cat /proc/3828/io\nrchar: 323934931\nwchar: 323929600\nsyscr: 632687\nsyscw: 632675\nreadbytes: 0\nwritebytes: 323932160\ncancelledwritebytes: 0\n\nThe fields are as follows:\n\nrchar: characters read\nThe number of bytes returned by successful read(2) and similar system calls.\n\nwchar: characters written\nThe number of bytes returned by successful write(2) and similar system calls.\n\nsyscr: read syscalls\nThe  number  of  \"file  read\" system calls—those from the read(2) family, send‐\nfile(2), copyfilerange(2), and ioctl(2) BTRFSIOCENCODEDREAD[32]  (includ‐\ning when invoked by the kernel as part of other syscalls).\n\nsyscw: write syscalls\nThe  number  of \"file write\" system calls—those from the write(2) family, send‐\nfile(2), copyfilerange(2), and ioctl(2) BTRFSIOCENCODEDWRITE[32] (includ‐\ning when invoked by the kernel as part of other syscalls).\n\nreadbytes: bytes read\nThe number of bytes really fetched from the storage layer.   This  is  accurate\nfor block-backed filesystems.\n\nwritebytes: bytes written\nThe number of bytes really sent to the storage layer.\n\ncancelledwritebytes:\nThe  above  statistics fail to account for truncation: if a process writes 1 MB\nto a regular file and then removes it, said 1 MB will not be written, but  will\nhave  nevertheless  been  accounted as a 1 MB write.  This field represents the\nnumber of bytes \"saved\" from I/O writeback.  This can yield to having done neg‐\native  I/O  if  caches  dirtied  by  another  process  are   truncated.    can‐\ncelledwritebytes applies to I/O already accounted-for in writebytes.\n\nPermission   to   access   this   file   is   governed   by   ptrace(2)   access  mode\nPTRACEMODEREADFSCREDS.\n",
            "subsections": []
        },
        "CAVEATS": {
            "content": "These counters are not atomic: on systems where 64-bit integer operations may tear, a counter\ncould be updated simultaneously with a read, yielding an incorrect intermediate value.\n",
            "subsections": []
        },
        "SEE ALSO": {
            "content": "getrusage(2), proc(5)\n\nLinux man-pages 6.7                          2024-03-18                               procpidio(5)",
            "subsections": []
        }
    },
    "summary": "/proc/pid/io - I/O statistics",
    "flags": [],
    "examples": [],
    "see_also": [
        {
            "name": "getrusage",
            "section": "2",
            "url": "https://www.chedong.com/phpMan.php/man/getrusage/2/json"
        },
        {
            "name": "proc",
            "section": "5",
            "url": "https://www.chedong.com/phpMan.php/man/proc/5/json"
        }
    ]
}