实例介绍
《LINUX/UNIX系统编程手册》((德)Michael Kerrisk ),上下册,经典的LINUX/UNIX下C语言编程教材,这是这本书所用到的所有代码,包涵所有头文件,亲测在LINUX下完美运行
【实例截图】
【核心代码】
24a91c8c-ba23-476c-a15d-e4087e7a13cd
└── tlpi-dist
├── acl
│ ├── acl_update.c
│ ├── acl_view.c
│ └── Makefile
├── altio
│ ├── demo_sigio.c
│ ├── epoll_input.c
│ ├── Makefile
│ ├── poll_pipes.c
│ ├── select_mq.c
│ ├── self_pipe.c
│ └── t_select.c
├── BUILDING
├── cap
│ ├── check_password_caps.c
│ └── Makefile
├── CHANGES
├── COPYING.agpl-v3
├── COPYING.gpl-v3
├── COPYING.lgpl-v3
├── daemons
│ ├── become_daemon.c
│ ├── become_daemon.h
│ ├── daemon_SIGHUP.c
│ ├── Makefile
│ ├── test_become_daemon.c
│ └── t_syslog.c
├── dirs_links
│ ├── bad_symlink.c
│ ├── file_type_stats.c
│ ├── list_files.c
│ ├── list_files_readdir_r.c
│ ├── Makefile
│ ├── nftw_dir_tree.c
│ ├── t_dirbasename.c
│ ├── t_unlink.c
│ └── view_symlink.c
├── filebuff
│ ├── copy.c
│ ├── direct_read.c
│ ├── Makefile
│ ├── mix23io.c
│ ├── mix23_linebuff.c
│ └── write_bytes.c
├── fileio
│ ├── atomic_append.c
│ ├── bad_exclusive_open.c
│ ├── copy.c
│ ├── large_file.c
│ ├── Makefile
│ ├── multi_descriptors.c
│ ├── seek_io.c
│ ├── t_readv.c
│ └── t_truncate.c
├── filelock
│ ├── create_pid_file.c
│ ├── create_pid_file.h
│ ├── i_fcntl_locking.c
│ ├── Makefile
│ ├── region_locking.c
│ ├── region_locking.h
│ └── t_flock.c
├── files
│ ├── chiflag.c
│ ├── file_perms.c
│ ├── file_perms.h
│ ├── Makefile
│ ├── t_chown.c
│ ├── t_stat.c
│ ├── t_umask.c
│ ├── t_utime.c
│ └── t_utimes.c
├── filesys
│ ├── Makefile
│ ├── t_mount.c
│ ├── t_statfs.c
│ ├── t_statvfs.c
│ └── t_umount.c
├── getopt
│ ├── Makefile
│ └── t_getopt.c
├── inotify
│ ├── demo_inotify.c
│ ├── dnotify.c
│ ├── inotify_dtree.c
│ ├── Makefile
│ └── rand_dtree.c
├── lib
│ ├── alt_functions.c
│ ├── alt_functions.h
│ ├── Build_ename.sh
│ ├── error_functions.c
│ ├── error_functions.h
│ ├── get_num.c
│ ├── get_num.h
│ ├── Makefile
│ ├── README
│ └── tlpi_hdr.h
├── loginacct
│ ├── dump_utmpx.c
│ ├── Makefile
│ ├── utmpx_login.c
│ └── view_lastlog.c
├── Makefile
├── Makefile.inc
├── Makefile.inc.FreeBSD
├── Makefile.inc.HP-UX
├── Makefile.inc.MacOSX
├── Makefile.inc.Solaris
├── Makefile.inc.Tru64
├── memalloc
│ ├── free_and_sbrk.c
│ └── Makefile
├── mmap
│ ├── anon_mmap.c
│ ├── Makefile
│ ├── mmcat.c
│ ├── mmcopy.c
│ ├── t_mmap.c
│ └── t_remap_file_pages.c
├── namespaces
│ ├── demo_userns.c
│ ├── demo_uts_namespaces.c
│ ├── hostname.c
│ ├── Makefile
│ ├── multi_pidns.c
│ ├── ns_child_exec.c
│ ├── ns_exec.c
│ ├── ns_run.c
│ ├── orphan.c
│ ├── pidns_init_sleep.c
│ ├── simple_init.c
│ ├── t_setns_userns.c
│ ├── unshare.c
│ ├── userns_child_exec.c
│ └── userns_setns_test.c
├── pgsjc
│ ├── catch_SIGHUP.c
│ ├── disc_SIGHUP.c
│ ├── handling_SIGTSTP.c
│ ├── job_mon.c
│ ├── Makefile
│ ├── orphaned_pgrp_SIGHUP.c
│ └── t_setsid.c
├── pipes
│ ├── change_case.c
│ ├── fifo_seqnum_client.c
│ ├── fifo_seqnum.h
│ ├── fifo_seqnum_server.c
│ ├── Makefile
│ ├── pipe_ls_wc.c
│ ├── pipe_sync.c
│ ├── popen_glob.c
│ └── simple_pipe.c
├── pmsg
│ ├── Makefile
│ ├── mq_notify_sig.c
│ ├── mq_notify_sigwaitinfo.c
│ ├── mq_notify_thread.c
│ ├── mq_notify_via_signal.c
│ ├── mq_notify_via_thread.c
│ ├── pmsg_create.c
│ ├── pmsg_getattr.c
│ ├── pmsg_receive.c
│ ├── pmsg_send.c
│ └── pmsg_unlink.c
├── proc
│ ├── bad_longjmp.c
│ ├── display_env.c
│ ├── longjmp.c
│ ├── Makefile
│ ├── mem_segments.c
│ ├── modify_env.c
│ ├── necho.c
│ ├── setenv.c
│ ├── setjmp_vars.c
│ └── t_getenv.c
├── proccred
│ ├── idshow.c
│ └── Makefile
├── procexec
│ ├── acct_on.c
│ ├── acct_v3_view.c
│ ├── acct_view.c
│ ├── child_status.c
│ ├── closeonexec.c
│ ├── demo_clone.c
│ ├── envargs.c
│ ├── execlp.c
│ ├── exit_handlers.c
│ ├── footprint.c
│ ├── fork_file_sharing.c
│ ├── fork_sig_sync.c
│ ├── fork_stdio_buf.c
│ ├── fork_whos_on_first.c
│ ├── fork_whos_on_first.count.awk
│ ├── longest_line.awk
│ ├── Makefile
│ ├── make_zombie.c
│ ├── multi_SIGCHLD.c
│ ├── multi_wait.c
│ ├── necho.c
│ ├── orphan.c
│ ├── print_wait_status.c
│ ├── print_wait_status.h
│ ├── simple_system.c
│ ├── system.c
│ ├── t_clone.c
│ ├── t_execl.c
│ ├── t_execle.c
│ ├── t_execlp.c
│ ├── t_execve.c
│ ├── t_fork.c
│ ├── t_system.c
│ ├── t_vfork.c
│ └── vfork_fd_test.c
├── procpri
│ ├── demo_sched_fifo.c
│ ├── Makefile
│ ├── sched_set.c
│ ├── sched_view.c
│ ├── t_sched_getaffinity.c
│ ├── t_sched_setaffinity.c
│ └── t_setpriority.c
├── procres
│ ├── Makefile
│ ├── print_rlimit.c
│ ├── print_rlimit.h
│ ├── print_rusage.c
│ ├── print_rusage.h
│ ├── rlimit_nproc.c
│ ├── rusage.c
│ └── rusage_wait.c
├── progconc
│ ├── Makefile
│ └── syscall_speed.c
├── psem
│ ├── Makefile
│ ├── psem_create.c
│ ├── psem_getvalue.c
│ ├── psem_post.c
│ ├── psem_timedwait.c
│ ├── psem_trywait.c
│ ├── psem_unlink.c
│ ├── psem_wait.c
│ └── thread_incr_psem.c
├── pshm
│ ├── Makefile
│ ├── pshm_create.c
│ ├── pshm_read.c
│ ├── pshm_unlink.c
│ └── pshm_write.c
├── pty
│ ├── Makefile
│ ├── pty_fork.c
│ ├── pty_fork.h
│ ├── pty_master_open_bsd.c
│ ├── pty_master_open.c
│ ├── pty_master_open.h
│ ├── script.c
│ └── unbuffer.c
├── README
├── seccomp
│ ├── libseccomp_demo.c
│ ├── Makefile
│ ├── seccomp_control_open.c
│ ├── seccomp_deny_open.c
│ └── seccomp_perf.c
├── shlibs
│ ├── demo_Bsymbolic
│ │ ├── build.sh
│ │ ├── foo1.c
│ │ ├── foo2.c
│ │ ├── foo3.c
│ │ └── prog.c
│ ├── Demo_no_lib.sh
│ ├── Demo_shared_lib.sh
│ ├── Demo_static_lib.sh
│ ├── dynload.c
│ ├── Makefile
│ ├── mod1.c
│ ├── mod2.c
│ ├── mod3.c
│ ├── prog.c
│ ├── rpath_demo
│ │ ├── build-rpath-link.sh
│ │ ├── build.sh
│ │ ├── d1
│ │ │ └── modx1.c
│ │ ├── d2
│ │ │ └── modx2.c
│ │ └── prog.c
│ └── version_scripts
│ ├── sv_build.sh
│ ├── sv_libabc.c
│ ├── sv_lib_v1.c
│ ├── sv_lib_v2.c
│ ├── sv_prog_abc.c
│ ├── sv_prog.c
│ ├── sv_prog_complex.c
│ ├── sv_v1.map
│ ├── sv_v2.map
│ ├── vis_build.sh
│ ├── vis_comm.c
│ ├── vis_f1.c
│ ├── vis_f2.c
│ └── vis.map
├── signals
│ ├── catch_rtsigs.c
│ ├── demo_SIGFPE.c
│ ├── ignore_pending_sig.c
│ ├── intquit.c
│ ├── Makefile
│ ├── nonreentrant.c
│ ├── ouch.c
│ ├── siginterrupt.c
│ ├── sigmask_longjmp.c
│ ├── signal.c
│ ├── signalfd_sigval.c
│ ├── signal_functions.c
│ ├── signal_functions.h
│ ├── sig_receiver.c
│ ├── sig_sender.c
│ ├── sig_speed_sigsuspend.c
│ ├── t_kill.c
│ ├── t_sigaltstack.c
│ ├── t_sigqueue.c
│ ├── t_sigsuspend.c
│ └── t_sigwaitinfo.c
├── sockets
│ ├── i6d_ucase_cl.c
│ ├── i6d_ucase.h
│ ├── i6d_ucase_sv.c
│ ├── id_echo_cl.c
│ ├── id_echo.h
│ ├── id_echo_sv.c
│ ├── inet_sockets.c
│ ├── inet_sockets.h
│ ├── is_echo_cl.c
│ ├── is_echo_inetd_sv.c
│ ├── is_echo_sv.c
│ ├── is_echo_v2_sv.c
│ ├── is_seqnum_cl.c
│ ├── is_seqnum.h
│ ├── is_seqnum_sv.c
│ ├── is_seqnum_v2_cl.c
│ ├── is_seqnum_v2.h
│ ├── is_seqnum_v2_sv.c
│ ├── list_host_addresses.c
│ ├── Makefile
│ ├── rdwrn.c
│ ├── rdwrn.h
│ ├── read_line_buf.c
│ ├── read_line_buf.h
│ ├── read_line.c
│ ├── read_line.h
│ ├── README
│ ├── scm_cred.h
│ ├── scm_cred_recv.c
│ ├── scm_cred_send.c
│ ├── scm_rights.h
│ ├── scm_rights_recv.c
│ ├── scm_rights_send.c
│ ├── sendfile.c
│ ├── socknames.c
│ ├── t_gethostbyname.c
│ ├── t_getservbyname.c
│ ├── ud_ucase_cl.c
│ ├── ud_ucase.h
│ ├── ud_ucase_sv.c
│ ├── unix_sockets.c
│ ├── unix_sockets.h
│ ├── us_abstract_bind.c
│ ├── us_xfr_cl.c
│ ├── us_xfr.h
│ ├── us_xfr_sv.c
│ ├── us_xfr_v2_cl.c
│ ├── us_xfr_v2.h
│ └── us_xfr_v2_sv.c
├── svipc
│ ├── Makefile
│ ├── svmsg_demo_server.c
│ └── t_ftok.c
├── svmsg
│ ├── Makefile
│ ├── svmsg_chqbytes.c
│ ├── svmsg_create.c
│ ├── svmsg_file_client.c
│ ├── svmsg_file.h
│ ├── svmsg_file_server.c
│ ├── svmsg_info.c
│ ├── svmsg_ls.c
│ ├── svmsg_receive.c
│ ├── svmsg_rm.c
│ └── svmsg_send.c
├── svsem
│ ├── binary_sems.c
│ ├── binary_sems.h
│ ├── event_flags.c
│ ├── event_flags.h
│ ├── Makefile
│ ├── semun.h
│ ├── svsem_bad_init.c
│ ├── svsem_create.c
│ ├── svsem_demo.c
│ ├── svsem_good_init.c
│ ├── svsem_info.c
│ ├── svsem_mon.c
│ ├── svsem_op.c
│ ├── svsem_rm.c
│ └── svsem_setall.c
├── svshm
│ ├── Makefile
│ ├── svshm_attach.c
│ ├── svshm_create.c
│ ├── svshm_info.c
│ ├── svshm_lock.c
│ ├── svshm_mon.c
│ ├── svshm_rm.c
│ ├── svshm_unlock.c
│ ├── svshm_xfr.h
│ ├── svshm_xfr_reader.c
│ └── svshm_xfr_writer.c
├── sysinfo
│ ├── Makefile
│ ├── procfs_pidmax.c
│ ├── procfs_user_exe.c
│ └── t_uname.c
├── syslim
│ ├── Makefile
│ ├── t_fpathconf.c
│ └── t_sysconf.c
├── threads
│ ├── detached_attrib.c
│ ├── Makefile
│ ├── one_time_init.c
│ ├── prod_condvar.c
│ ├── prod_no_condvar.c
│ ├── pthread_barrier_demo.c
│ ├── simple_thread.c
│ ├── strerror.c
│ ├── strerror_test.c
│ ├── strerror_tls.c
│ ├── strerror_tsd.c
│ ├── thread_cancel.c
│ ├── thread_cleanup.c
│ ├── thread_incr.c
│ ├── thread_incr_mutex.c
│ ├── thread_incr_rwlock.c
│ ├── thread_incr_spinlock.c
│ ├── thread_lock_speed.c
│ └── thread_multijoin.c
├── time
│ ├── calendar_time.c
│ ├── curr_time.c
│ ├── curr_time.h
│ ├── Makefile
│ ├── process_time.c
│ ├── show_time.c
│ ├── strtime.c
│ └── t_stime.c
├── timers
│ ├── demo_timerfd.c
│ ├── itimerspec_from_str.c
│ ├── itimerspec_from_str.h
│ ├── Makefile
│ ├── ptmr_null_evp.c
│ ├── ptmr_sigev_signal.c
│ ├── ptmr_sigev_thread.c
│ ├── real_timer.c
│ ├── t_clock_nanosleep.c
│ ├── timed_read.c
│ └── t_nanosleep.c
├── tty
│ ├── demo_SIGWINCH.c
│ ├── Makefile
│ ├── new_intr.c
│ ├── no_echo.c
│ ├── test_tty_functions.c
│ ├── tty_functions.c
│ ├── tty_functions.h
│ └── ttyname.c
├── users_groups
│ ├── check_password.c
│ ├── Makefile
│ ├── t_getpwent.c
│ ├── t_getpwnam_r.c
│ ├── ugid_functions.c
│ └── ugid_functions.h
├── vmem
│ ├── madvise_dontneed.c
│ ├── Makefile
│ ├── memlock.c
│ └── t_mprotect.c
└── xattr
├── Makefile
├── t_setxattr.c
└── xattr_view.c
52 directories, 447 files
标签:
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论