trace(5)trace(5)Nametrace - system call tracer device
Description
The file is the system call trace device. It supports the following
system calls: and The device supports 16 (configurable in as TR_USRS)
simultaneous users. It uses an 8192-byte buffer for trace records. The
choice of which system calls to trace is done with the system call. The
call is used for efficient reading of the device. The call uses an
8192-byte buffer and returns when the buffer is 60% full. It is
required that the user use a buffer the same size as the system buffer
size defined in as TR_BUFSIZE. All operations are defined in the
header file, The calls are:
────────────────────────────────
ioctl arg (pointer to)
────────────────────────────────
IOTR_GETOFF int a
IOTR_GETON int a
IOTR_GETALL int a
IOTR_GETPIDS int a[10]
IOTR_GETUIDS int a[10]
IOTR_GETSYSC int a[10]
IOTR_GETPGRP int a[10]
IOTR_SETOFF int a
IOTR_SETON int a
IOTR_SETALL int a
IOTR_SETPIDS int a[10]
IOTR_SETUIDS int a[10]
IOTR_SETSYSC int a[10]
IOTR_SETPGRP int a[10]
────────────────────────────────
Examples
A prototype example (with missing parts):
char cmd[BUFSIZ],buf[TR_BUFSIZ];
int pgrp[10],i;
fd = open("/dev/trace",0); /* open the device */
pgrp[0] = dofork(cmd); /* fork the command to trace */
for (i=1;i<TR_PGRP;i++) /* dofork sleeps 2 seconds while */
pgrp[i] = 0; /* we set up to do the trace */
i = ioctl(fd,IOTR_SETPGRP,pgrp);/* set up for the trace */
/* select code goes here */
read(fd,buf,sizeof(buf));
See Alsotrace(1), close(2), ioctl(2), open(2), read(2), select(2)trace(5)