自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 收藏
  • 关注

转载 C语言中内存分配

在任何程序设计环境及语言中,内存管理都十分重要。在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。 第1节主要介绍内存管理基本概念,重点介绍C程序中内存的分配,以及C语言编译后的可执行程序的存储结构和运行结构,同时还介绍了堆空间和栈空间的用途及区别。 第2节主要介绍C语言中内存分配及释放函数、函数的功能,以及如何调用这些

2016-07-31 20:33:03 249

原创 第17章 高级进程间通信

1. UNIX域套接字   用于同一台计算机上运行的进程之间的通信。提供流和数据报两种接口,UNIX域数据报服务是可靠的。   int socketpair(int domain, int type, int protocol, int sockfd[2]); //创建一对无命名的,相互连接的UNIX域套接字   //借助UNIX域套接字轮询XSI消息队列 #include "apue

2016-07-28 11:24:30 219

原创 第十六章 网络IPC:套接字

1. 套接字描述符   套接字是通信端点的抽象。   int socket(int domain, int type, int protocol); //创建一个套接字,返回套接字的描述符   //domain确定通信的特性,type确定套接字的类型,protocol代表通信协议   int shutdown(int sockfd, int how); //套接字的通信是双向的,它用来禁止

2016-07-26 17:32:38 276

原创 第十五章 IPC

1. 管道   局限性:历史上,它们是半双工;管道只能在具有公共祖先的两个进程间使用。   int pipe(int fd[2]); //创建管道   fd[0]为读而打开,fd[1]为写而打开;fd[1]的输出是fd[0]的输入。   i. 当读一个写端已被关闭的管道时,在所有数据都被读取后,read返回0,表示文件结束   ii. 当写一个读端已被关闭的管道时,则产生信号SIGPIP

2016-07-21 16:32:34 671

原创 第14章 高级I/O

1. 非阻塞I/O   对于一个给定的描述符,有两种为其指定非阻塞I/O的办法:   i. 如果调用open获得描述符,则可制定O_NONBLOCK标志;   ii. 对于已经打开的一个描述符,则可调用fcntl,由该函数打开O_NONBLOCK文件状态标志。 #include "apue.h" #include #include char buf[500000]; int m

2016-07-18 17:51:05 778

原创 第十三章 守护进程

1. 编程规则   i. 调用umask将文件模式创建屏蔽字设置为一个已知值;   ii. 调用fork,然后使父进程exit;   iii. 调用setsid创建一个新会话;   iX. 将当前工作目录更改为根目录;   X. 关闭不需要的文件描述符;   Xi. 某些守护进程打开/dev/null使其具有文件描述符0,1,2,这样,任何一个试图读标准输入,写标准输出或标准错误的库例

2016-07-17 12:09:14 217

原创 第十二章 线程控制

1. 线程属性   int pthread_attr_init(pthread_attr_t *attr);   int pthread_attr_destroy(pthread_attr_t *attr);   int pthread_attr_getdetachstate(const pthread_attr_t *restrict attr, int *detachstate)

2016-07-16 16:21:02 266

原创 第十一章 线程

1. 线程标识   int pthread_equal(pthread_t tid1, pthread_t tid2); //线程ID相等的话,返回非0;否则返回0。   pthread_t pthread_self(void); //返回调用线程的线程ID 2. 线程创建   int pthread_create(pthread_t *restrict tidp, const p

2016-07-14 21:44:09 239

原创 第十章 信号

1. 函数signal   void (*signal(int signo, void(*func)(int)))(int);   func是常量SIG_IGN时,向内核表示忽略此信号,SIGKILL和SIGSTOP不能忽略;是常量SIG_DFL,表示借到此信号后的动作是系统默认动作;是函数地址时,代表信号处理程序或信号捕捉函数。 #include "apue.h" static void

2016-07-12 16:28:08 228

原创 第八章 进程控制

1. 进程标识符   pid_t getpid(void);  //返回调用进程的进程ID   pid_t getppid(void);  //返回调用进程的父进程ID   uid_t getuid(void);  //返回调用进程的实际用户ID   uid_t geteuid(void);  //返回调用进程的有效用户ID   gid_t getgid(void);  //返回进程的实

2016-07-08 16:52:13 298

原创 第七章 进程环境

1. 函数atexit。   int atexit(void (*func(void)));  //若成功,返回0;若出错,返回非0   exit调用这些函数的顺序与它们登记时候的顺序相反,同一函数登记多次,也会调用多次。 #include "apue.h" static void my_exit1(void); static void my_exit2(void); int main(

2016-07-05 18:57:13 199

原创 学习shell script

1. script的执行方式区别   sh和source的区别,用source执行会在父进程里面。 2. test命令测试 #!/bin/sh # Program: # User input a filename, program will check the flowing: # 1.) exist? 2.) file/directory? 3.) file permissi

2016-07-04 22:03:43 271

转载 一点小问题关于dash?

按照鸟哥私房菜些的shell编程,但是却出现莫名其妙的问题。 如: #测试if else read -p "input y/n? : " yn if [ $yn == "y" ]; then         echo "continue;" elif [ $yn == "n" ]; then         echo "break;" else         e

2016-07-04 18:59:45 1768

原创 第六章 系统数据文件和信息

1. 口令文件   获取口令文件项的函数:   struct passwd *getwuid(uid_t uid);   struct passwd *getpwnam(const char *name);

2016-07-01 16:48:17 267

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除