SYMBOL INDEX (723 symbols across 257 files) FILE: code/conc/badcnt.c function main (line 12) | int main(int argc, char **argv) FILE: code/conc/ctime_ts.c function init_ctime_ts (line 9) | static void init_ctime_ts(void) function main (line 27) | int main() FILE: code/conc/echo_cnt.c function init_echo_cnt (line 11) | static void init_echo_cnt(void) function echo_cnt (line 17) | void echo_cnt(int connfd) FILE: code/conc/echoserverp.c function sigchld_handler (line 8) | void sigchld_handler(int sig) //line:conc:echoserverp:handlerstart function main (line 15) | int main(int argc, char **argv) FILE: code/conc/echoservers.c type pool (line 7) | typedef struct { /* represents a pool of connected descriptors */ //line... function main (line 24) | int main(int argc, char **argv) function init_pool (line 57) | void init_pool(int listenfd, pool *p) function add_client (line 73) | void add_client(int connfd, pool *p) function check_clients (line 99) | void check_clients(pool *p) FILE: code/conc/echoservert.c function main (line 10) | int main(int argc, char **argv) FILE: code/conc/echoservert_pre.c function main (line 15) | int main(int argc, char **argv) FILE: code/conc/hello.c function main (line 8) | int main() //line:conc:hello:main FILE: code/conc/hellobug.c function main (line 8) | int main() FILE: code/conc/norace.c function main (line 10) | int main() FILE: code/conc/psum.c function main (line 14) | int main(int argc, char **argv) FILE: code/conc/race.c function main (line 10) | int main() FILE: code/conc/rand.c function rand (line 8) | int rand(void) function srand (line 15) | void srand(unsigned int seed) function main (line 21) | int main() FILE: code/conc/rand_r.c function rand_r (line 6) | int rand_r(unsigned int *nextp) function main (line 13) | int main() FILE: code/conc/sbuf.c function sbuf_init (line 7) | void sbuf_init(sbuf_t *sp, int n) function sbuf_deinit (line 20) | void sbuf_deinit(sbuf_t *sp) function sbuf_insert (line 28) | void sbuf_insert(sbuf_t *sp, int item) function sbuf_remove (line 40) | int sbuf_remove(sbuf_t *sp) FILE: code/conc/sbuf.h type sbuf_t (line 7) | typedef struct { FILE: code/conc/select.c function main (line 6) | int main(int argc, char **argv) function command (line 37) | void command(void) { FILE: code/conc/sharing.c function main (line 8) | int main() FILE: code/conc/tfgets-main.c function main (line 6) | int main() FILE: code/data/show-bytes.c function show_bytes (line 10) | void show_bytes(byte_pointer start, int len) { function show_int (line 17) | void show_int(int x) { function show_float (line 21) | void show_float(float x) { function show_pointer (line 25) | void show_pointer(void *x) { function test_show_bytes (line 32) | void test_show_bytes(int val) { function simple_show_a (line 42) | void simple_show_a() { function simple_show_b (line 52) | void simple_show_b() { function float_eg (line 62) | void float_eg() { function string_ueg (line 77) | void string_ueg() { function string_leg (line 84) | void string_leg() { function show_twocomp (line 91) | void show_twocomp() function main (line 102) | int main(int argc, char *argv[]) FILE: code/ecf/alarm.c function handler (line 4) | void handler(int sig) function main (line 17) | int main() FILE: code/ecf/counterprob.c function handler (line 6) | void handler(int sig) function main (line 13) | int main() FILE: code/ecf/fork.c function main (line 4) | int main() FILE: code/ecf/forkprob0.c function main (line 4) | int main() FILE: code/ecf/forkprob1.c function main (line 4) | int main() FILE: code/ecf/forkprob2.c function end (line 4) | void end(void) function main (line 9) | int main() FILE: code/ecf/forkprob3.c function main (line 4) | int main() FILE: code/ecf/forkprob4.c function doit (line 4) | void doit() function main (line 12) | int main() FILE: code/ecf/forkprob5.c function doit (line 4) | void doit() function main (line 14) | int main() FILE: code/ecf/forkprob6.c function doit (line 4) | void doit() function main (line 14) | int main() FILE: code/ecf/forkprob7.c function main (line 5) | int main() FILE: code/ecf/forkprob8.c function foo (line 4) | void foo(int n) function main (line 15) | int main(int argc, char **argv) FILE: code/ecf/kill.c function main (line 4) | int main() FILE: code/ecf/procmask1.c function initjobs (line 3) | void initjobs() function addjob (line 7) | void addjob(int pid) function deletejob (line 11) | void deletejob(int pid) function handler (line 16) | void handler(int sig) function main (line 25) | int main(int argc, char **argv) FILE: code/ecf/procmask2.c function initjobs (line 3) | void initjobs() function addjob (line 7) | void addjob(int pid) function deletejob (line 11) | void deletejob(int pid) function handler (line 16) | void handler(int sig) function main (line 25) | int main(int argc, char **argv) FILE: code/ecf/restart.c function handler (line 6) | void handler(int sig) function main (line 11) | int main() FILE: code/ecf/rfork.c function pid_t (line 18) | pid_t Fork(void) FILE: code/ecf/setjmp.c function main (line 11) | int main() function foo (line 28) | void foo(void) function bar (line 35) | void bar(void) FILE: code/ecf/shellex.c function main (line 10) | int main() function eval (line 29) | void eval(char *cmdline) function builtin_command (line 62) | int builtin_command(char **argv) function parseline (line 74) | int parseline(char *buf, char **argv) FILE: code/ecf/sigint1.c function handler (line 4) | void handler(int sig) /* SIGINT handler */ //line:ecf:sigint1:beginhan... function main (line 10) | int main() FILE: code/ecf/signal1.c function handler1 (line 4) | void handler1(int sig) function main (line 15) | int main() FILE: code/ecf/signal2.c function handler2 (line 4) | void handler2(int sig) function main (line 16) | int main() FILE: code/ecf/signal3.c function handler2 (line 4) | void handler2(int sig) function main (line 16) | int main() { FILE: code/ecf/signal4.c function handler2 (line 4) | void handler2(int sig) function main (line 16) | int main() FILE: code/ecf/signalprob0.c function handler1 (line 11) | void handler1(int sig) { function main (line 18) | int main() { FILE: code/ecf/waitpid1.c function main (line 5) | int main() FILE: code/ecf/waitpid2.c function main (line 5) | int main() FILE: code/ecf/waitprob0.c function main (line 4) | int main() FILE: code/ecf/waitprob1.c function main (line 4) | int main() FILE: code/ecf/waitprob3.c function main (line 4) | int main() FILE: code/include/csapp.h type SA (line 36) | typedef struct sockaddr SA; type rio_t (line 42) | typedef struct { type timeval (line 94) | struct timeval type stat (line 96) | struct stat type stat (line 97) | struct stat type sockaddr (line 121) | struct sockaddr type sockaddr (line 123) | struct sockaddr type sockaddr (line 124) | struct sockaddr type hostent (line 127) | struct hostent type hostent (line 128) | struct hostent FILE: code/intro/hello.c function main (line 4) | int main() FILE: code/io/cpfile.c function main (line 4) | int main(int argc, char **argv) FILE: code/io/cpstdin.c function main (line 4) | int main(void) FILE: code/io/statcheck.c function main (line 4) | int main (int argc, char **argv) FILE: code/link/addvec.c function addvec (line 3) | void addvec(int *x, int *y, FILE: code/link/dll.c function main (line 10) | int main() FILE: code/link/elfstructs.c type Elf_Symbol (line 2) | typedef struct { type Elf32_Rel (line 15) | typedef struct { FILE: code/link/main.c function main (line 7) | int main() FILE: code/link/main2.c function main (line 10) | int main() FILE: code/link/multvec.c function multvec (line 3) | void multvec(int *x, int *y, FILE: code/link/swap.c function swap (line 8) | void swap() FILE: code/mem/matmult/mm.c function checkresult (line 15) | void checkresult(array c, int n) function run (line 30) | double run(test_funct f, int n) function reset (line 40) | void reset(array c, int n) function init (line 52) | void init(array a, array b, int n) function printarray (line 66) | void printarray(array a, int n) function ijk (line 81) | void ijk(array A, array B, array C, int n) function jik (line 98) | void jik(array A, array B, array C, int n) function ikj (line 114) | void ikj(array A, array B, array C, int n) function kij (line 129) | void kij(array A, array B, array C, int n) function kji (line 144) | void kji(array A, array B, array C, int n) function jki (line 159) | void jki(array A, array B, array C, int n) function main (line 179) | int main() FILE: code/mem/mountain/mountain.c function main (line 23) | int main() function init_data (line 62) | void init_data(double *data, int n) function test (line 75) | void test(int elems, int stride) /* The test function */ function run (line 92) | double run(int size, int stride, double Mhz) FILE: code/netp/echo.c function echo (line 7) | void echo(int connfd) FILE: code/netp/echoclient.c function main (line 7) | int main(int argc, char **argv) FILE: code/netp/echoserveri.c function main (line 9) | int main(int argc, char **argv) FILE: code/netp/hostinfo.c function main (line 4) | int main(int argc, char **argv) FILE: code/netp/tiny/cgi-bin/adder.c function main (line 7) | int main(void) { FILE: code/netp/tiny/tiny.c function main (line 17) | int main(int argc, char **argv) function doit (line 43) | void doit(int fd) function read_requesthdrs (line 93) | void read_requesthdrs(rio_t *rp) function parse_uri (line 111) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 142) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 166) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 183) | void serve_dynamic(int fd, char *filename, char *cgiargs) function clienterror (line 207) | void clienterror(int fd, char *cause, char *errnum, FILE: code/src/csapp.c function unix_error (line 9) | void unix_error(char *msg) /* unix-style error */ function posix_error (line 16) | void posix_error(int code, char *msg) /* posix-style error */ function dns_error (line 22) | void dns_error(char *msg) /* dns-style error */ function app_error (line 28) | void app_error(char *msg) /* application error */ function pid_t (line 40) | pid_t Fork(void) function Execve (line 50) | void Execve(const char *filename, char *const argv[], char *const envp[]) function pid_t (line 57) | pid_t Wait(int *status) function pid_t (line 67) | pid_t Waitpid(pid_t pid, int *iptr, int options) function Kill (line 77) | void Kill(pid_t pid, int signum) function Pause (line 86) | void Pause() function Sleep (line 92) | unsigned int Sleep(unsigned int secs) function Alarm (line 101) | unsigned int Alarm(unsigned int seconds) { function Setpgid (line 105) | void Setpgid(pid_t pid, pid_t pgid) { function pid_t (line 113) | pid_t Getpgrp(void) { function handler_t (line 122) | handler_t *Signal(int signum, handler_t *handler) function Sigprocmask (line 136) | void Sigprocmask(int how, const sigset_t *set, sigset_t *oldset) function Sigemptyset (line 143) | void Sigemptyset(sigset_t *set) function Sigfillset (line 150) | void Sigfillset(sigset_t *set) function Sigaddset (line 157) | void Sigaddset(sigset_t *set, int signum) function Sigdelset (line 164) | void Sigdelset(sigset_t *set, int signum) function Sigismember (line 171) | int Sigismember(const sigset_t *set, int signum) function Open (line 184) | int Open(const char *pathname, int flags, mode_t mode) function Read (line 193) | ssize_t Read(int fd, void *buf, size_t count) function Write (line 202) | ssize_t Write(int fd, const void *buf, size_t count) function off_t (line 211) | off_t Lseek(int fildes, off_t offset, int whence) function Close (line 220) | void Close(int fd) function Select (line 228) | int Select(int n, fd_set *readfds, fd_set *writefds, function Dup2 (line 238) | int Dup2(int fd1, int fd2) function Stat (line 247) | void Stat(const char *filename, struct stat *buf) function Fstat (line 253) | void Fstat(int fd, struct stat *buf) function Munmap (line 271) | void Munmap(void *start, size_t length) function Free (line 308) | void Free(void *ptr) function Fclose (line 316) | void Fclose(FILE *fp) function FILE (line 322) | FILE *Fdopen(int fd, const char *type) function FILE (line 342) | FILE *Fopen(const char *filename, const char *mode) function Fputs (line 352) | void Fputs(const char *ptr, FILE *stream) function Fread (line 358) | size_t Fread(void *ptr, size_t size, size_t nmemb, FILE *stream) function Fwrite (line 367) | void Fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) function Socket (line 378) | int Socket(int domain, int type, int protocol) function Setsockopt (line 387) | void Setsockopt(int s, int level, int optname, const void *optval, int o... function Bind (line 395) | void Bind(int sockfd, struct sockaddr *my_addr, int addrlen) function Listen (line 403) | void Listen(int s, int backlog) function Accept (line 411) | int Accept(int s, struct sockaddr *addr, socklen_t *addrlen) function Connect (line 420) | void Connect(int sockfd, struct sockaddr *serv_addr, int addrlen) type hostent (line 433) | struct hostent type hostent (line 435) | struct hostent type hostent (line 443) | struct hostent type hostent (line 445) | struct hostent function Pthread_create (line 456) | void Pthread_create(pthread_t *tidp, pthread_attr_t *attrp, function Pthread_cancel (line 465) | void Pthread_cancel(pthread_t tid) { function Pthread_join (line 472) | void Pthread_join(pthread_t tid, void **thread_return) { function Pthread_detach (line 480) | void Pthread_detach(pthread_t tid) { function Pthread_exit (line 488) | void Pthread_exit(void *retval) { function pthread_t (line 492) | pthread_t Pthread_self(void) { function Pthread_once (line 496) | void Pthread_once(pthread_once_t *once_control, void (*init_function)()) { function Sem_init (line 504) | void Sem_init(sem_t *sem, int pshared, unsigned int value) function P (line 510) | void P(sem_t *sem) function V (line 516) | void V(sem_t *sem) function rio_readn (line 529) | ssize_t rio_readn(int fd, void *usrbuf, size_t n) function rio_writen (line 555) | ssize_t rio_writen(int fd, void *usrbuf, size_t n) function rio_read (line 585) | static ssize_t rio_read(rio_t *rp, char *usrbuf, size_t n) function rio_readinitb (line 617) | void rio_readinitb(rio_t *rp, int fd) function rio_readnb (line 629) | ssize_t rio_readnb(rio_t *rp, void *usrbuf, size_t n) function rio_readlineb (line 655) | ssize_t rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen) function Rio_readn (line 681) | ssize_t Rio_readn(int fd, void *ptr, size_t nbytes) function Rio_writen (line 690) | void Rio_writen(int fd, void *usrbuf, size_t n) function Rio_readinitb (line 696) | void Rio_readinitb(rio_t *rp, int fd) function Rio_readnb (line 701) | ssize_t Rio_readnb(rio_t *rp, void *usrbuf, size_t n) function Rio_readlineb (line 710) | ssize_t Rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen) function open_clientfd (line 729) | int open_clientfd(char *hostname, int port) function open_listenfd (line 759) | int open_listenfd(int port) function Open_clientfd (line 792) | int Open_clientfd(char *hostname, int port) function Open_listenfd (line 805) | int Open_listenfd(int port) FILE: code/vm/malloc/memlib.c function mem_init (line 28) | void mem_init(void) function mem_deinit (line 57) | void mem_deinit(void) function mem_reset_brk (line 64) | void mem_reset_brk() function mem_heapsize (line 88) | size_t mem_heapsize() function mem_pagesize (line 96) | size_t mem_pagesize() FILE: code/vm/malloc/mm.c function mm_init (line 66) | int mm_init(void) function mm_free (line 134) | void mm_free(void *bp) function mm_checkheap (line 240) | void mm_checkheap(int verbose) function place (line 278) | static void place(void *bp, size_t asize) function printblock (line 337) | static void printblock(void *bp) function checkblock (line 357) | static void checkblock(void *bp) function checkheap (line 368) | void checkheap(int verbose) FILE: code/vm/mm.h type team_t (line 11) | typedef struct { FILE: common/csapp.c function unix_error (line 9) | void unix_error(char *msg) /* unix-style error */ function posix_error (line 16) | void posix_error(int code, char *msg) /* posix-style error */ function dns_error (line 22) | void dns_error(char *msg) /* dns-style error */ function app_error (line 28) | void app_error(char *msg) /* application error */ function pid_t (line 40) | pid_t Fork(void) function Execve (line 50) | void Execve(const char *filename, char *const argv[], char *const envp[]) function pid_t (line 57) | pid_t Wait(int *status) function pid_t (line 67) | pid_t Waitpid(pid_t pid, int *iptr, int options) function Kill (line 77) | void Kill(pid_t pid, int signum) function Pause (line 86) | void Pause() function Sleep (line 92) | unsigned int Sleep(unsigned int secs) function Alarm (line 101) | unsigned int Alarm(unsigned int seconds) { function Setpgid (line 105) | void Setpgid(pid_t pid, pid_t pgid) { function pid_t (line 113) | pid_t Getpgrp(void) { function handler_t (line 122) | handler_t *Signal(int signum, handler_t *handler) function Sigprocmask (line 136) | void Sigprocmask(int how, const sigset_t *set, sigset_t *oldset) function Sigemptyset (line 143) | void Sigemptyset(sigset_t *set) function Sigfillset (line 150) | void Sigfillset(sigset_t *set) function Sigaddset (line 157) | void Sigaddset(sigset_t *set, int signum) function Sigdelset (line 164) | void Sigdelset(sigset_t *set, int signum) function Sigismember (line 171) | int Sigismember(const sigset_t *set, int signum) function Open (line 184) | int Open(const char *pathname, int flags, mode_t mode) function Read (line 193) | ssize_t Read(int fd, void *buf, size_t count) function Write (line 202) | ssize_t Write(int fd, const void *buf, size_t count) function off_t (line 211) | off_t Lseek(int fildes, off_t offset, int whence) function Close (line 220) | void Close(int fd) function Select (line 228) | int Select(int n, fd_set *readfds, fd_set *writefds, function Dup2 (line 238) | int Dup2(int fd1, int fd2) function Stat (line 247) | void Stat(const char *filename, struct stat *buf) function Fstat (line 253) | void Fstat(int fd, struct stat *buf) function Munmap (line 271) | void Munmap(void *start, size_t length) function Free (line 308) | void Free(void *ptr) function Fclose (line 316) | void Fclose(FILE *fp) function FILE (line 322) | FILE *Fdopen(int fd, const char *type) function FILE (line 342) | FILE *Fopen(const char *filename, const char *mode) function Fputs (line 352) | void Fputs(const char *ptr, FILE *stream) function Fread (line 358) | size_t Fread(void *ptr, size_t size, size_t nmemb, FILE *stream) function Fwrite (line 367) | void Fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream) function Socket (line 378) | int Socket(int domain, int type, int protocol) function Setsockopt (line 387) | void Setsockopt(int s, int level, int optname, const void *optval, int o... function Bind (line 395) | void Bind(int sockfd, struct sockaddr *my_addr, int addrlen) function Listen (line 403) | void Listen(int s, int backlog) function Accept (line 411) | int Accept(int s, struct sockaddr *addr, socklen_t *addrlen) function Connect (line 420) | void Connect(int sockfd, struct sockaddr *serv_addr, int addrlen) type hostent (line 433) | struct hostent type hostent (line 435) | struct hostent type hostent (line 443) | struct hostent type hostent (line 445) | struct hostent function Pthread_create (line 456) | void Pthread_create(pthread_t *tidp, pthread_attr_t *attrp, function Pthread_cancel (line 465) | void Pthread_cancel(pthread_t tid) { function Pthread_join (line 472) | void Pthread_join(pthread_t tid, void **thread_return) { function Pthread_detach (line 480) | void Pthread_detach(pthread_t tid) { function Pthread_exit (line 488) | void Pthread_exit(void *retval) { function pthread_t (line 492) | pthread_t Pthread_self(void) { function Pthread_once (line 496) | void Pthread_once(pthread_once_t *once_control, void (*init_function)()) { function Sem_init (line 504) | void Sem_init(sem_t *sem, int pshared, unsigned int value) function P (line 510) | void P(sem_t *sem) function V (line 516) | void V(sem_t *sem) function rio_readn (line 529) | ssize_t rio_readn(int fd, void *usrbuf, size_t n) function rio_writen (line 555) | ssize_t rio_writen(int fd, void *usrbuf, size_t n) function rio_read (line 585) | static ssize_t rio_read(rio_t *rp, char *usrbuf, size_t n) function rio_readinitb (line 617) | void rio_readinitb(rio_t *rp, int fd) function rio_readnb (line 629) | ssize_t rio_readnb(rio_t *rp, void *usrbuf, size_t n) function rio_readlineb (line 655) | ssize_t rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen) function Rio_readn (line 681) | ssize_t Rio_readn(int fd, void *ptr, size_t nbytes) function Rio_writen (line 690) | void Rio_writen(int fd, void *usrbuf, size_t n) function Rio_readinitb (line 696) | void Rio_readinitb(rio_t *rp, int fd) function Rio_readnb (line 701) | ssize_t Rio_readnb(rio_t *rp, void *usrbuf, size_t n) function Rio_readlineb (line 710) | ssize_t Rio_readlineb(rio_t *rp, void *usrbuf, size_t maxlen) function open_clientfd (line 729) | int open_clientfd(char *hostname, int port) function open_listenfd (line 759) | int open_listenfd(int port) function Open_clientfd (line 792) | int Open_clientfd(char *hostname, int port) function Open_listenfd (line 805) | int Open_listenfd(int port) FILE: common/csapp.h type SA (line 36) | typedef struct sockaddr SA; type rio_t (line 42) | typedef struct { type timeval (line 94) | struct timeval type stat (line 96) | struct stat type stat (line 97) | struct stat type sockaddr (line 121) | struct sockaddr type sockaddr (line 123) | struct sockaddr type sockaddr (line 124) | struct sockaddr type hostent (line 127) | struct hostent type hostent (line 128) | struct hostent FILE: exercise/ex10-10.c function main (line 14) | int main(int argc, char **argv) FILE: exercise/ex10-2.c function main (line 15) | int main() FILE: exercise/ex10-3.c function main (line 13) | int main() FILE: exercise/ex10-5.c function main (line 15) | int main() FILE: exercise/ex10-6.c function main (line 15) | int main(void) FILE: exercise/ex10-7.c function main (line 19) | int main(int argc, char **argv) FILE: exercise/ex10-8.c function main (line 20) | int main(int argc, char **argv) FILE: exercise/ex11-10/cgi-bin/adder.c function main (line 12) | int main(void) FILE: exercise/ex11-10/tiny.c function reap_child (line 22) | void reap_child(int signo) function main (line 38) | int main(int argc, char **argv) function doit (line 73) | void doit(int fd) function clienterror (line 150) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 172) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 197) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 253) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 265) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: exercise/ex11-11/cgi-bin/adder.c function main (line 12) | int main(void) FILE: exercise/ex11-11/tiny.c function reap_child (line 22) | void reap_child(int signo) function main (line 38) | int main(int argc, char **argv) function write_to_file (line 106) | void write_to_file(char *request) function doit (line 121) | void doit(int fd) function clienterror (line 161) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 183) | int parse_uri(char *uri, char *filename, char *cgiargs) function send_response_body (line 208) | void send_response_body(int fd, char *filename) function serve_static (line 251) | void serve_static(int fd, char *filename, int filesize, char *method) function get_filetype (line 271) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 285) | void serve_dynamic(int fd, char *filename, char *cgiargs, char *method) FILE: exercise/ex11-12/cgi-bin/adder.c function main (line 12) | int main(void) FILE: exercise/ex11-12/tiny.c function reap_child (line 22) | void reap_child(int signo) function main (line 38) | int main(int argc, char **argv) function write_to_file (line 106) | void write_to_file(char *request) function get_post_entity (line 122) | void get_post_entity(char *request, char *entity, int len) function doit (line 149) | void doit(int fd) function clienterror (line 194) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 216) | int parse_uri(char *uri, char *filename, char *cgiargs) function send_response_body (line 241) | void send_response_body(int fd, char *filename) function serve_static (line 284) | void serve_static(int fd, char *filename, int filesize, char *method) function get_filetype (line 304) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 318) | void serve_dynamic(int fd, char *filename, char *cgiargs, char *method) FILE: exercise/ex11-13/cgi-bin/adder.c function main (line 12) | int main(void) FILE: exercise/ex11-13/tiny.c function reap_child (line 36) | void reap_child(int signo) function client_offline (line 51) | void client_offline(int signo, siginfo_t *info, void *context) function main (line 66) | int main(int argc, char **argv) function write_to_file (line 155) | void write_to_file(char *request) function get_post_entity (line 171) | void get_post_entity(char *request, char *entity, int len) function doit (line 198) | void doit(int fd) function clienterror (line 243) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 265) | int parse_uri(char *uri, char *filename, char *cgiargs) function send_response_body (line 290) | void send_response_body(int fd, char *filename) function serve_static (line 333) | void serve_static(int fd, char *filename, int filesize, char *method) function get_filetype (line 353) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 367) | void serve_dynamic(int fd, char *filename, char *cgiargs, char *method) FILE: exercise/ex11-2.c function main (line 24) | int main(int argc, char *argv[]) FILE: exercise/ex11-3.c function main (line 20) | int main(int argc, char *argv[]) FILE: exercise/ex11-6/cgi-bin/adder.c function main (line 9) | int main(void) FILE: exercise/ex11-6/tiny.c function main (line 20) | int main(int argc, char **argv) function doit (line 42) | void doit(int fd) function clienterror (line 119) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 141) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 167) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 191) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 203) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: exercise/ex11-7/cgi-bin/adder.c function main (line 12) | int main(void) FILE: exercise/ex11-7/tiny.c function reap_child (line 22) | void reap_child(int signo) function main (line 38) | int main(int argc, char **argv) function doit (line 73) | void doit(int fd) function clienterror (line 150) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 172) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 197) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 253) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 267) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: exercise/ex11-8/cgi-bin/adder.c function main (line 9) | int main(void) FILE: exercise/ex11-8/tiny.c function reap_child (line 28) | void reap_child(int signo) function main (line 44) | int main(int argc, char **argv) function doit (line 79) | void doit(int fd) function clienterror (line 156) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 178) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 204) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 228) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 240) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: exercise/ex11-9/cgi-bin/adder.c function main (line 9) | int main(void) FILE: exercise/ex11-9/tiny.c function reap_child (line 33) | void reap_child(int signo) function main (line 49) | int main(int argc, char **argv) function doit (line 84) | void doit(int fd) function clienterror (line 161) | void clienterror(int fd, char *cause, char *errnum, function parse_uri (line 183) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 209) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 265) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 277) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: exercise/ex12-22.c function echo (line 27) | void echo(int connfd) function command (line 45) | void command(void) function open_listenfd (line 62) | int open_listenfd(int port) function Open_listenfd (line 92) | int Open_listenfd(int port) function Select (line 103) | int Select(int n, fd_set *readfds, fd_set *writefds, function Accept (line 115) | int Accept(int s, struct sockaddr *addr, socklen_t *addrlen) function Close (line 126) | void Close(int fd) function main (line 135) | int main(int argc, char **argv) FILE: exercise/ex2-36.c function tmult_ok (line 13) | int tmult_ok(int x, int y) function book_tmult_ok (line 21) | int book_tmult_ok(int x, int y) FILE: exercise/ex2-42.c function div16 (line 12) | int div16(int x) function book_div16 (line 25) | int book_div16(int x) FILE: exercise/ex2-58.c function is_little_endian (line 7) | int is_little_endian(void) FILE: exercise/ex2-59.c function combine_word (line 7) | int combine_word(unsigned x, unsigned y) FILE: exercise/ex2-60.c function replace_byte (line 15) | unsigned replace_byte(unsigned x, unsigned char b, int i) FILE: exercise/ex2-61.c function ex2_61 (line 24) | void ex2_61(void) FILE: exercise/ex2-62.c function int_shifts_are_logical (line 11) | int int_shifts_are_logical(void) FILE: exercise/ex2-63.c function sra (line 12) | int sra(int x, int k) function srl (line 29) | unsigned srl(unsigned x, int k) FILE: exercise/ex2-64.c function any_even_one (line 11) | int any_even_one(unsigned x) FILE: exercise/ex2-65.c function even_ones (line 28) | int even_ones(unsigned x) FILE: exercise/ex2-66.c function leftmost_one (line 15) | int leftmost_one(unsigned x) function rightmost_one (line 33) | int rightmost_one(unsigned x) FILE: exercise/ex2-67.c function int_size_is_32 (line 32) | int int_size_is_32(void) function int_size_is_at_least_32 (line 50) | int int_size_is_at_least_32(void) function int_size_is_at_least_16 (line 59) | int int_size_is_at_least_16(void) FILE: exercise/ex2-68.c function lower_bits (line 15) | int lower_bits(int x, int n) FILE: exercise/ex2-69.c function rotate_right (line 10) | unsigned rotate_right(unsigned x, int n) FILE: exercise/ex2-7.c function main (line 13) | int main(void) FILE: exercise/ex2-70.c function fits_bits (line 23) | int fits_bits(int x, int n) FILE: exercise/ex2-71.c type packed_t (line 39) | typedef unsigned packed_t; function xbyte (line 41) | int xbyte(packed_t word, int bytenum) FILE: exercise/ex2-72.c function copy_int (line 34) | void copy_int(int val, void *buf, int maxbytes) FILE: exercise/ex2-73.c function saturating_add (line 31) | int saturating_add(int x, int y) FILE: exercise/ex2-74.c function tsub_ovf (line 16) | int tsub_ovf(int x, int y) FILE: exercise/ex2-75.c function unsigned_high_prod (line 23) | unsigned unsigned_high_prod(unsigned x, unsigned y) FILE: exercise/ex2-76.c function main (line 16) | int main(void) FILE: exercise/ex2-77.c function divide_power2 (line 21) | int divide_power2(int x, int k) FILE: exercise/ex2-78.c function mul5div8 (line 10) | int mul5div8(int x) FILE: exercise/ex2-79.c function fiveeighths (line 31) | int fiveeighths(int x) FILE: exercise/ex2-80.c function nlowest_zero (line 15) | int nlowest_zero(int n) function nlowestone_minus_mlowestone (line 23) | int nlowestone_minus_mlowestone(int n, int m) FILE: exercise/ex2-81.c function main (line 31) | int main(void) FILE: exercise/ex2-83.c function float_ge (line 50) | int float_ge(float x, float y) function float_ge_ans (line 79) | int float_ge_ans(float x, float y) FILE: exercise/ex2-89.c function f2u (line 20) | unsigned f2u(float f) function u2f (line 27) | float u2f(unsigned x) function fpwr2 (line 35) | float fpwr2(int x) FILE: exercise/ex2-91.c type float_bits (line 15) | typedef unsigned float_bits; function float_bits (line 17) | float_bits float_absval(float_bits f) function f2u (line 38) | unsigned f2u(float f) function main (line 46) | int main(void) FILE: exercise/ex2-92.c type float_bits (line 15) | typedef unsigned float_bits; function float_bits (line 18) | float_bits float_negate(float_bits f) FILE: exercise/ex2-93.c type float_bits (line 15) | typedef unsigned float_bits; function float_bits (line 18) | float_bits float_half(float_bits f) FILE: exercise/ex2-94.c type float_bits (line 15) | typedef unsigned float_bits; function float_bits (line 18) | float_bits float_twice(float_bits f) FILE: exercise/ex2-95.c type float_bits (line 17) | typedef unsigned float_bits; function float_bits (line 36) | float_bits float_i2f(int i) FILE: exercise/ex2-96.c type float_bits (line 19) | typedef unsigned float_bits; function float_f2i (line 35) | int float_f2i(float_bits f) FILE: exercise/ex3-19.c function tmul_ok_32 (line 11) | int tmul_ok_32(int x, int y) function largest_factorial_32 (line 20) | int largest_factorial_32(void) function tmul_ok_64 (line 36) | int tmul_ok_64(long long int x, long long int y) function largest_factorial_64 (line 45) | int largest_factorial_64(void) FILE: exercise/ex3-34.c function rfun (line 5) | int rfun(unsigned x) function main (line 16) | int main(void) FILE: exercise/ex3-54.c function decode2 (line 5) | int decode2(int x, int y, int z) FILE: exercise/ex3-57.c function cread_alt (line 13) | int cread_alt(int *xp) FILE: exercise/ex3-58.c type mode_t (line 6) | typedef enum { function switch3 (line 14) | int switch3(int *p1, int *p2, mode_t action) FILE: exercise/ex3-59.c function switch_prob (line 4) | int switch_prob(int x, int n) FILE: exercise/ex3-61.c function var_prod_ele (line 8) | int var_prod_ele(int n, int A[n][n], int B[n][n], int i, int k) FILE: exercise/ex3-62.c function transpose (line 10) | void transpose(int M, int A[M][M]) FILE: exercise/ex3-67.c function proc (line 24) | void proc(union ele *up) FILE: exercise/ex3-68.c function good_echo (line 11) | int good_echo(void) FILE: exercise/ex3-69.c type ELE (line 9) | struct ELE type ELE (line 11) | struct ELE { function trace (line 29) | long trace(tree_ptr tp) FILE: exercise/ex3-70.c type ELE (line 9) | struct ELE type ELE (line 11) | struct ELE { function traverse (line 20) | long traverse(tree_ptr tp) FILE: exercise/ex7-7.c function f (line 13) | void f() function f (line 22) | void f() function f (line 34) | void f() FILE: exercise/ex8-11.c function main (line 28) | int main() FILE: exercise/ex8-12.c function doit (line 12) | void doit() function main (line 20) | int main() FILE: exercise/ex8-13.c function main (line 25) | int main() FILE: exercise/ex8-14.c function doit (line 15) | void doit() function main (line 25) | int main() FILE: exercise/ex8-15.c function doit (line 15) | void doit() function main (line 25) | int main() FILE: exercise/ex8-16.c function main (line 12) | int main() FILE: exercise/ex8-18.c function end (line 22) | void end(void) function main (line 27) | int main() FILE: exercise/ex8-2.c function main (line 3) | int main() FILE: exercise/ex8-20.c function main (line 31) | int main(int argc, char *argv[]) FILE: exercise/ex8-21.c function main (line 24) | int main() FILE: exercise/ex8-22.c function mysystem (line 28) | int mysystem(char *command) FILE: exercise/ex8-24.c function main (line 12) | int main(void) FILE: exercise/ex8-25.c function signal_handler (line 21) | void signal_handler(int signo) type sigaction (line 32) | struct sigaction FILE: exercise/ex8-26/job.c type job (line 22) | struct job function is_empty (line 25) | int is_empty(struct job *job_list[], int len) function init_job (line 35) | void init_job(void) function free_job (line 56) | void free_job(void) function add_job (line 64) | int add_job(pid_t pgid, int state, char *command, int len) function find_job (line 102) | int find_job(pid_t pgid) function delete_job (line 111) | void delete_job(pid_t pgid) function update_job (line 120) | void update_job(pid_t pgid, int state) function pid_t (line 131) | pid_t get_pgid(int jid) function print_job (line 138) | void print_job(int i) function print_job_by_pgid (line 153) | void print_job_by_pgid(pid_t pgid) function print_all_job (line 159) | void print_all_job(void) function print_foreground (line 171) | void print_foreground(void) function set_foreground (line 177) | void set_foreground(pid_t pgid, char *command, int len) function pid_t (line 189) | pid_t foreground_pgid(void) function get_foreground_command (line 194) | void get_foreground_command(char *command) function move_to_background (line 200) | void move_to_background(pid_t pgid, int state, char *command, int len) function move_to_foreground (line 209) | void move_to_foreground(pid_t pgid) FILE: exercise/ex8-26/job.h type job (line 17) | struct job { FILE: exercise/ex8-26/random_fork.c function pid_t (line 30) | pid_t random_fork(void) FILE: exercise/ex8-26/shellex.c function reap_child (line 30) | void reap_child(int signo) function wait_for_job (line 50) | void wait_for_job(pid_t pgid) function builtin_command (line 70) | int builtin_command(char **argv) function parseline (line 109) | int parseline(char *buf, char **argv) function run_the_job (line 140) | void run_the_job(char *filename, char *argv[], char *env[]) function eval (line 154) | void eval(char *cmdline) function stop_handler (line 196) | void stop_handler(int signo) function interrupt_handler (line 208) | void interrupt_handler(int signo) function install_signal_handler (line 214) | void install_signal_handler(void) function main (line 255) | int main(void) FILE: exercise/ex8-26/t-job.c function main (line 19) | int main(void) FILE: exercise/ex8-3.c function main (line 14) | int main(void) FILE: exercise/ex8-4.c function main (line 18) | int main() FILE: exercise/ex8-5.c function snooze (line 18) | unsigned int snooze(unsigned int secs) function main (line 28) | int main(void) FILE: exercise/ex8-6.c function main (line 11) | int main(int argc, char *argv[]) FILE: exercise/ex8-7.c function handler (line 20) | void handler(int sig) function snooze (line 25) | unsigned int snooze(unsigned int secs) function main (line 39) | int main(int argc, char *argv[]) FILE: exercise/ex8-8.c function handler1 (line 18) | void handler1(int sig) function main (line 26) | int main() FILE: exercise/ex9-14.c function modify_file_using_mmap (line 19) | int modify_file_using_mmap(int fd) FILE: exercise/ex9-17.c function mm_init (line 51) | int mm_init(void) function mm_free (line 88) | void mm_free(void *bp) function place (line 182) | static void place(void *bp, size_t asize) FILE: exercise/ex9-18.c function mm_init (line 60) | int mm_init(void) function mm_free (line 97) | void mm_free(void *bp) function place (line 203) | static void place(void *bp, size_t size) FILE: exercise/ex9-20/ex9-20.c type free_block (line 55) | struct free_block { type free_block (line 65) | struct free_block function min_block (line 67) | static int min_block(void) function swap (line 78) | static void swap(struct free_block *b1, struct free_block *b2) function block_quick_sort (line 90) | static void block_quick_sort(struct free_block *start, struct free_block... function block_binary_search (line 115) | static long block_binary_search(struct free_block *bs, struct free_block... function insert_free_block (line 140) | static int insert_free_block(struct free_block *block) function remove_free_block (line 168) | static void remove_free_block(struct free_block *block) function adjust_free_block (line 183) | static void adjust_free_block(struct free_block *block) function coalesce (line 197) | void coalesce(void) type free_block (line 221) | struct free_block type free_block (line 226) | struct free_block function place (line 233) | void place(struct free_block *bp, long asize) function mo_init (line 250) | int mo_init(void) type free_block (line 278) | struct free_block type free_block (line 281) | struct free_block type free_block (line 290) | struct free_block type free_block (line 308) | struct free_block type free_block (line 309) | struct free_block function mo_free (line 325) | void mo_free(void *ptr) FILE: exercise/ex9-20/t-block-operate.c type free_block (line 4) | struct free_block { type free_block (line 11) | struct free_block function block_binary_search (line 13) | static long block_binary_search(long size) function insert_free_block (line 38) | static void insert_free_block(struct free_block *block) function remove_free_block (line 52) | static void remove_free_block(struct free_block *block) function adjust_free_block (line 67) | static void adjust_free_block(struct free_block *block) type free_block (line 82) | struct free_block function init_blocks (line 84) | static void init_blocks(void) function print_blocks (line 105) | void print_blocks(void) function main (line 114) | int main(void) FILE: exercise/ex9-20/t-block-quick-sort.c type free_block (line 3) | struct free_block { type free_block (line 8) | struct free_block function swap (line 10) | static void swap(struct free_block *b1, struct free_block *b2) function block_quick_sort (line 22) | static void block_quick_sort(struct free_block *start, struct free_block... type free_block (line 47) | struct free_block function init_blocks (line 49) | static void init_blocks(void) function print_blocks (line 61) | void print_blocks(void) function main (line 70) | int main(void) FILE: exercise/ex9-20/t-malloc.c function main (line 7) | int main(void) FILE: exercise/ex9-20/t2.c function main (line 4) | int main(void) FILE: exercise/ex9-20/t3.c function main (line 3) | int main(void) FILE: exercise/ex9-20/t9-20.c function main (line 21) | int main(void) FILE: exercise/ex9-5.c function main (line 25) | int main(int argc, char *argv[]) FILE: exercise/ex9-9.c function place (line 12) | static void place(void *bp, size_t size) FILE: exercise/t2-59.c function main (line 14) | int main(void) FILE: exercise/t2-95.c type float_bits (line 17) | typedef unsigned float_bits; function main (line 22) | int main(void) FILE: exercise/t2-96.c type float_bits (line 16) | typedef unsigned float_bits; function main (line 21) | int main(void) FILE: exercise/t8-22.c function main (line 11) | int main(int argc, char *argv[]) FILE: exercise/t8-25.c function main (line 12) | int main(void) FILE: exercise/t9-14.c function main (line 21) | int main(void) FILE: exercise/t9-17.c function main (line 16) | int main(void) FILE: missing.c type homework (line 30) | struct homework { type homework (line 36) | struct homework function init_total_topic (line 50) | int init_total_topic(void) function index_total (line 62) | int index_total(int chapter_num, int topic_num) function get_chapter_topic_from_index (line 78) | void get_chapter_topic_from_index(int index, int *chapter_num, int *topi... function get_chapter_topic_from_filename (line 95) | void get_chapter_topic_from_filename(char *filename, int *chapter_num, i... function set_total_topic (line 128) | void set_total_topic(char *dirname) function main (line 152) | int main(void) FILE: sample/ch02/show-bytes.c function show_bytes (line 13) | void show_bytes(byte_pointer start, int len) function show_int (line 21) | void show_int(int x) function show_float (line 26) | void show_float(float x) function show_pointer (line 31) | void show_pointer(void *x) FILE: sample/ch03/buf-overflow.c function echo (line 20) | void echo() FILE: sample/ch03/code.c function sum (line 13) | int sum(int x, int y) FILE: sample/ch03/main.c function main (line 7) | int main() FILE: sample/ch03/simple.c function simple (line 7) | int simple(int *xp, int y) FILE: sample/ch03/simple_1.c function simple_1 (line 9) | long int simple_1(long int *xp, long int y) FILE: sample/ch07/addvec.c function addvec (line 8) | void addvec(int *x, int *y, int *z, int n) FILE: sample/ch07/bar1.c function main (line 4) | int main() FILE: sample/ch07/bar2.c function f (line 6) | void f() FILE: sample/ch07/bar3.c function f (line 6) | void f() FILE: sample/ch07/bar4.c function f (line 7) | void f() FILE: sample/ch07/bar5.c function f (line 7) | void f() FILE: sample/ch07/dll.c function main (line 16) | int main() FILE: sample/ch07/foo1.c function main (line 5) | int main() FILE: sample/ch07/foo2.c function main (line 6) | int main() FILE: sample/ch07/foo3.c function main (line 10) | int main() FILE: sample/ch07/foo4.c function main (line 11) | int main() FILE: sample/ch07/foo5.c function main (line 20) | int main() FILE: sample/ch07/linkerror.c function main (line 7) | int main(void) FILE: sample/ch07/main.c function main (line 9) | int main() FILE: sample/ch07/main2.c function main (line 17) | int main() FILE: sample/ch07/multvec.c function multvec (line 5) | void multvec(int *x, int *y, int *z, int n) FILE: sample/ch07/swap.c function swap (line 10) | void swap() FILE: sample/ch08/alarm.c function handler (line 17) | void handler(int sig) function main (line 30) | int main() FILE: sample/ch08/fork.c function main (line 10) | int main() FILE: sample/ch08/kill.c function main (line 11) | int main() FILE: sample/ch08/procmask1.c function handler (line 41) | void handler(int sig) function main (line 50) | int main(int argc, char **argv) FILE: sample/ch08/procmask2.c function handler (line 17) | void handler(int sig) function main (line 26) | int main(int argc, char **argv) FILE: sample/ch08/restart.c function handler (line 22) | void handler(int sig) function main (line 27) | int main() FILE: sample/ch08/rfork.c function pid_t (line 30) | pid_t Fork(void) FILE: sample/ch08/setjmp.c function main (line 25) | int main() function foo (line 42) | void foo(void) function bar (line 49) | void bar(void) FILE: sample/ch08/shellex.c function main (line 15) | int main() function eval (line 32) | void eval(char *cmdline) function builtin_command (line 65) | int builtin_command(char **argv) function parseline (line 75) | int parseline(char *buf, char **argv) FILE: sample/ch08/sigint1.c function handler (line 13) | void handler(int sig) /* SIGINT handler */ function main (line 19) | int main() FILE: sample/ch08/signal1.c function handler1 (line 28) | void handler1(int sig) function main (line 39) | int main() FILE: sample/ch08/signal2.c function handler2 (line 22) | void handler2(int sig) function main (line 34) | int main() FILE: sample/ch08/signal3.c function handler2 (line 14) | void handler2(int sig) function main (line 26) | int main() FILE: sample/ch08/signal4.c function handler2 (line 11) | void handler2(int sig) function main (line 23) | int main() FILE: sample/ch08/waitpid1.c function main (line 10) | int main(void) FILE: sample/ch08/waitpid2.c function main (line 10) | int main(void) FILE: sample/ch09/memlib.c function mem_init (line 13) | void mem_init(void) FILE: sample/ch09/mm-test.c function main (line 8) | int main(void) FILE: sample/ch09/mm.c function mm_init (line 40) | int mm_init(void) function mm_free (line 76) | void mm_free(void *bp) function place (line 167) | static void place(void *bp, size_t asize) FILE: sample/ch10/cpfile.c function main (line 11) | int main(int argc, char *argv[]) FILE: sample/ch10/cpstdin.c function main (line 9) | int main(void) FILE: sample/ch10/statcheck.c function main (line 9) | int main(int argc, char **argv) FILE: sample/ch11/echo.c function echo (line 11) | void echo(int connfd) FILE: sample/ch11/echoclient.c function main (line 12) | int main(int argc, char **argv) FILE: sample/ch11/echoserveri.c function main (line 13) | int main(int argc, char **argv) FILE: sample/ch11/hostinfo.c function main (line 18) | int main(int argc, char **argv) FILE: sample/ch11/tiny/cgi-bin/adder.c function main (line 9) | int main(void) FILE: sample/ch11/tiny/tiny.c function main (line 19) | int main(int argc, char **argv) function doit (line 40) | void doit(int fd) function clienterror (line 85) | void clienterror(int fd, char *cause, char *errnum, function read_requesthdrs (line 107) | void read_requesthdrs(rio_t *rp) function parse_uri (line 119) | int parse_uri(char *uri, char *filename, char *cgiargs) function serve_static (line 145) | void serve_static(int fd, char *filename, int filesize) function get_filetype (line 169) | void get_filetype(char *filename, char *filetype) function serve_dynamic (line 181) | void serve_dynamic(int fd, char *filename, char *cgiargs) FILE: sample/ch12/badcnt.c function main (line 22) | int main(int argc, char **argv) FILE: sample/ch12/echo_cnt.c function init_echo_cnt (line 14) | static void init_echo_cnt(void) function echo_cnt (line 20) | void echo_cnt(int connfd) FILE: sample/ch12/echoserverp.c function sigchld_handler (line 16) | void sigchld_handler(int sig) function main (line 23) | int main(int argc, char **argv) FILE: sample/ch12/echoservers.c type pool (line 13) | typedef struct { /* Represents a pool of connected descri... function init_pool (line 28) | void init_pool(int listenfd, pool *p) function add_client (line 42) | void add_client(int connfd, pool *p) function check_client (line 66) | void check_client(pool *p) function main (line 96) | int main(int argc, char **argv) FILE: sample/ch12/echoservert.c function main (line 15) | int main(int argc, char **argv) FILE: sample/ch12/echoservert_pre.c function main (line 31) | int main(int argc, char **argv) FILE: sample/ch12/goodcnt.c function main (line 20) | int main(int argc, char **argv) FILE: sample/ch12/hello.c function main (line 16) | int main() FILE: sample/ch12/sbuf.c function sbuf_init (line 9) | void sbuf_init(sbuf_t *sp, int n) function sbuf_deinit (line 20) | void sbuf_deinit(sbuf_t *sp) function sbuf_insert (line 26) | void sbuf_insert(sbuf_t *sp, int item) function sbuf_remove (line 36) | int sbuf_remove(sbuf_t *sp) FILE: sample/ch12/sbuf.h type sbuf_t (line 10) | typedef struct { FILE: sample/ch12/select.c function main (line 18) | int main(int argc, char **argv) function command (line 51) | void command(void) FILE: sample/ch12/sharing.c function main (line 22) | int main()