---
name: "ixp_stat"
section: "3"
platform: "linux"
package: "libixp-dev"
version: "0.6~20121202+hg148-5"
release: "Debian 11 (Bullseye)"
platforms: ["linux"]
url: "https://new.carta.tech/ixp_stat"
---

# ixp\_stat(3)

## NAME

ixp\_stat, ixp\_fstat, IxpStat, IxpQid, IxpQType, IxpDMode

## SYNOPSIS

```
#include <ixp.h>
IxpStat *ixp_stat(IxpClient *c, const char *path);
IxpStat *ixp_fstat(IxpCFid *fid);
typedef struct IxpStat IxpStat;
struct IxpStat {
        uint16_t        type;
        uint32_t        dev;
        IxpQid          qid;
        uint32_t        mode;
        uint32_t        atime;
        uint32_t        mtime;
        uint64_t        length;
        char*   name;
        char*   uid;
        char*   gid;
        char*   muid;
}
typedef struct IxpQid IxpQid;
struct IxpQid {
        uint8_t         type;
        uint32_t        version;
        uint64_t        path;
        /* Private members */
        ...
}
enum IxpQType {
        P9_QTDIR        = 0x80, /* type bit for directories */
        P9_QTAPPEND     = 0x40, /* type bit for append only files */
        P9_QTEXCL       = 0x20, /* type bit for exclusive use files */
        P9_QTMOUNT      = 0x10, /* type bit for mounted channel */
        P9_QTAUTH       = 0x08, /* type bit for authentication file */
        P9_QTTMP        = 0x04, /* type bit for non-backed-up file */
        P9_QTSYMLINK    = 0x02, /* type bit for symbolic link */
        P9_QTFILE       = 0x00  /* type bits for plain file */
}
enum IxpDMode {
        P9_DMEXEC       = 0x1,          /* mode bit for execute permission */
        P9_DMWRITE      = 0x2,          /* mode bit for write permission */
        P9_DMREAD       = 0x4,          /* mode bit for read permission */
#define P9_DMDIR        0x80000000      /* mode bit for directories */
#define P9_DMAPPEND     0x40000000      /* mode bit for append only files */
#define P9_DMEXCL       0x20000000      /* mode bit for exclusive use files */
#define P9_DMMOUNT      0x10000000      /* mode bit for mounted channel */
#define P9_DMAUTH       0x08000000      /* mode bit for authentication file */
#define P9_DMTMP        0x04000000      /* mode bit for non-backed-up file */
#define P9_DMSYMLINK    0x02000000      /* mode bit for symbolic link (Unix, 9P2000.u) */
#define P9_DMDEVICE     0x00800000      /* mode bit for device file (Unix, 9P2000.u) */
#define P9_DMNAMEDPIPE  0x00200000      /* mode bit for named pipe (Unix, 9P2000.u) */
#define P9_DMSOCKET     0x00100000      /* mode bit for socket (Unix, 9P2000.u) */
#define P9_DMSETUID     0x00080000      /* mode bit for setuid (Unix, 9P2000.u) */
#define P9_DMSETGID     0x00040000      /* mode bit for setgid (Unix, 9P2000.u) */
}
```

## PARAMETERS

- path

  The path of the file to stat.

- fid

  An open file descriptor to stat.

## DESCRIPTION

Stats the file at *path* or pointed to by *fid*.

## RETURN VALUE

Returns an IxpStat structure, which must be freed by the caller with [free(3)](/free/3.md).

## SEE ALSO

[ixp\_mount(3)](/ixp_mount/3.md), [ixp\_open(3)](/ixp_open/3.md)
