C和C++
文章平均质量分 73
forbabyx
这个作者很懒,什么都没留下…
展开
-
C语法总结 预处理器
原创 2014-06-29 11:30:08 · 96 阅读 · 0 评论 -
UNIX网络编程 套接字编程介绍
原创 2015-11-02 20:19:24 · 91 阅读 · 0 评论 -
UNIX网络编程 基本TCP套接字编程
inet/in.h>#include <unistd.h>#include <fcntl.h>#include <sys/socket.h>#include <strings.h>#include <netinet/in.h>#include <time.h>int main(int argc,原创 2015-11-04 21:23:31 · 112 阅读 · 0 评论 -
UNIX网络编程 TCP客户/服务器程序示例
原创 2015-11-17 12:13:46 · 133 阅读 · 0 评论 -
UNIX网络编程 I/O复用 select和poll函数
原创 2015-11-17 12:14:38 · 94 阅读 · 0 评论 -
UNIX网络编程 套接字选项
原创 2015-11-17 12:38:21 · 123 阅读 · 0 评论 -
UNIX网络编程 基本UDP套接字编程
原创 2015-11-24 20:05:28 · 151 阅读 · 0 评论 -
UNIX网络编程 名字与地址转换
原创 2015-11-24 20:12:20 · 107 阅读 · 0 评论 -
UNIX网络编程 守护进程和inetd超级服务器
些脚本通常位于/etc/目录或者以/etc/rc开头的某个 目录汇总。有若干个网络服务器通常从这些脚本启动:inetd超级服务器2)许多网络服务器由inetd超级服务器启动。inetd自身由一个脚本启动。inetd监听网络请求(FTP,telnet等)每当 有一个请求达到时,启动相应的实际服务器(FTP服务器,telnet服务器)3)cron守护进程按照规则定期执行一些程序,而由它启动执行的程序同样作为守护进程运行。cron自身由 第一条启动方法中的某个脚本启动4)原创 2015-11-24 20:37:19 · 206 阅读 · 0 评论 -
UNIX网络编程 高级IO函数
处理在不同实现上 存在差异,而且可能干扰进程中现有的alram调用2)在select中阻塞等待I/O(select有内置的时间限制),以此代替直接阻塞在read或者write调用上3)使用交心的SO_RCVTIMEO和SO_SNDTIMEO套接字选项。这个方法的问题在于并发所有实现都支持这 两个套接字选项以上三个技术都适用于输入和输出操作(如read,write以及recvfrom,sendto之类的变体) recv和send函数#include <原创 2015-12-02 15:13:11 · 136 阅读 · 0 评论 -
UNIX网络编程 unix域协议
原创 2015-12-09 13:24:01 · 147 阅读 · 0 评论 -
UNIX网络编程 非阻塞式I/O
原创 2015-12-09 13:25:22 · 100 阅读 · 0 评论 -
UNIX网络编程 ioctl操作
原创 2015-12-09 13:25:58 · 139 阅读 · 0 评论 -
UNIX网络编程 路由套接字
原创 2015-12-09 13:27:55 · 123 阅读 · 0 评论 -
UNIX网络编程 密钥管理套接字
原创 2015-12-09 13:28:30 · 146 阅读 · 0 评论 -
UNIX网络编程 广播
原创 2015-12-09 13:29:46 · 139 阅读 · 0 评论 -
程序的加载和链接
Hello %s!\n", name);} main.c#include "hello.h" int main() { hello("everyone"); return 0;} 生成 .o 文件gcc -c hello.c 生成静态库文件ar cr libmyhello.a hello.ogcc -o hello main.c -L. -lmyhello./h原创 2018-06-04 20:29:25 · 387 阅读 · 0 评论 -
UNIX环境高级编程 高级进程间通讯
fd[2]);//sockaddr_un结构体如下struct sockaddr_un { sa_family_t sun_family; char sun_path[108];};//定义三个宏用于访问控制数据,计算cmsg_len所使用的值#include <sys/socket.h>unsigned char *CMSG_DATA(struct cmsghdr *cp);struct cm原创 2014-09-27 17:37:08 · 130 阅读 · 0 评论 -
UNIX环境高级编程 网络IPC:套接字
原创 2014-09-27 17:36:29 · 98 阅读 · 0 评论 -
UNIX环境高级编程 进程间通讯
用的管道端,执行一个shell运行命令,然后等待命令终止//type类似fopen函数,有"r","w"或者"rw"等#include <stdio.h>FILE *popen(const char *cmdstring, const char *type);int pclose(FILE *fp);//FIFO有时也被称为命名管道,未命名的管道只能在两个相关进程之间使用,而且这两个相关的进程原创 2014-09-27 17:35:52 · 108 阅读 · 0 评论 -
C语法总结 数组和指针
0] = {1,2,3,4,5,0,0,0,0,0};//也可以写成入如下形式相当于把整个数组全部赋值为0int a[10]={0};//C99中可以指定对某个元素下标赋值,剩余的就被赋值为0int a[15] = {[2]=11, [9]=33, [14]= 99};//对数组使用sizeof运算符int a[10];sizeof(a); //结果就是40//sizeof 返回的是无符号的整形size_t,无符号和有符号之间运算会有危险,//最好使用强制转原创 2014-07-01 21:48:56 · 137 阅读 · 0 评论 -
C语法总结 结构联合枚举
int on_hand;} part1 = { 528, "Disk driver", 10 }; part2 = { 914, "Printer cable", 5};//C99的指定初始化,对于上面的结构变量声明初始化可以改为{.number = 528, .name = "Disk Driver", .on_hand = 10 };//将 点号 和 成员名的组合称为指示符,指定初始化式有几个优点//1.易原创 2014-07-06 17:39:37 · 138 阅读 · 0 评论 -
C语法总结 底层设计和声明
导致程序丧失可移植性。如果一定要使用尽量将操作限定在特定的模块中而不要分散在各处。符号含义<<左移位>>右移位~按位求反&按位与^按位异或|按位或为了可移植性,最好仅对无符号数进行移位运算优先级来说,依次是 ~ ,&, ^, |//这些操作符不会改变原有变量的值,所以需要如下 i <<原创 2014-07-08 23:14:06 · 133 阅读 · 0 评论 -
C语法总结 基础语法和编写大型程序
原创 2014-07-14 22:33:26 · 131 阅读 · 0 评论 -
UNIX环境高级编程 文件I/O
IN_FILENO //标准输入STDOUT_FILENO //标准输出#include<fcntl.h>int creat(const char *path, mode_t moe);//返回文件描述符,负数表示错误#include <unistd.h>int close(int fd);//关闭一个文件还会释放该进程在该文件上的所有锁记录#include <unistd.h&a原创 2014-08-23 18:34:35 · 95 阅读 · 0 评论 -
UNIX环境高级编程 文件类型
原创 2014-08-26 13:10:45 · 102 阅读 · 0 评论 -
UNIX环境高级编程 标准I/O库
io.h>//stdin,stdout,stderr//设置缓冲区#include <stdio.h>void setbuf(FILE *restrict fp, char *restrict buf);int setvbuf(FILE *restrict fp, char *restrict buf, int mode, size_t size);//使用setvbuf,我们可以精确的说明所需的缓冲类型,这是用mode参数实现的//原创 2014-08-31 16:48:42 · 143 阅读 · 0 评论 -
UNIX环境高级编程 系统数据文件和信息
原创 2014-09-02 08:27:07 · 121 阅读 · 0 评论 -
UNIX环境高级编程 进程环境
原创 2014-09-06 22:35:43 · 115 阅读 · 0 评论 -
UNIX环境高级编程 进程控制
d(void);gid_t getegid(void);//创建新进程#include <unistd.h>pid_t fork(void);pid_t vfork(void);//当一个进程正常或异常终止时,内核就向其父进程发送SIGCHLD信号,wait或waitpid的进程会//1.如果其所有子进程都还在运行则阻塞//2.如果一个子进程已停止,正等待父进程获取其终止状态,则取得该子进程的终止状态立即返回//3.如果它没有任何子原创 2014-09-07 22:07:49 · 106 阅读 · 0 评论 -
UNIX环境高级编程 进程关系
#include <unistd.h>pid_t setsid(void);pid_t getsid(get_t pid); //返回会话首进程的进程组ID//对于setsid()函数,如果调用此函数的进程不是一个进程组的组长,则此函数创建一个新会话//1.该进程变成新会话的会话首进程(session leader会话首进程是创建该会话的进程),此时,该进程// 是新会话中唯一进程//2.该进程成为一个新进程组的组长进程。新进程组ID是该调用进原创 2014-09-14 15:04:43 · 96 阅读 · 0 评论 -
UNIX环境高级编程 信号
程或进程组,raise允许进程向自身发送信号#include <signal.h>int kill(pid_t pid, int signo);int raise(int signo); //raise(signo) 等于 kill(getpid(), signo)//kill的pid参数有以下4种不同的情况//1. pid>0 将该信号发送给进程ID为pid的进程//2. pid==0 将该信号发送给与发送进程属于同一进原创 2014-09-16 12:26:25 · 100 阅读 · 0 评论 -
UNIX环境高级编程 线程
原创 2014-09-16 12:29:24 · 108 阅读 · 0 评论 -
UNIX环境高级编程 线程控制
原创 2014-09-23 22:28:50 · 102 阅读 · 0 评论 -
UNIX环境高级编程 守护进程
og(void);int setlogmask(int maskpri);//除syslog,很多平台还提供它的一种变体来处理可变参数列表#include <syslog.h>#include <stdarg.h>void vsyslog(int priority, const char *format, va_list arg); ps -efj结构如下UID PID PPID原创 2014-09-24 12:17:19 · 167 阅读 · 0 评论 -
UNIX环境高级编程 高级I/O
);//锁记录的 flock结构体struct flock { short l_type; //希望加锁的类型(读锁,写锁,解锁) short l_whence; //要加锁的偏移类型SEEK_SET,SEEK_CUR,SEEK_END off_t l_start; //加锁的起始字节 off_t l_len //区域的字节长度 pid_t l_pid; //原创 2014-09-27 17:35:17 · 138 阅读 · 0 评论 -
虚拟内存
原创 2018-06-07 13:52:23 · 193 阅读 · 0 评论