linux编程
125096
这个作者很懒,什么都没留下…
展开
-
简单的TCP通讯
Server代码#include #include #include #include #include int main(int argc, const char * argv []){ struct sockaddr_in server_addr; server_addr.sin_family = AF_INET; server_addr.sin_port = hton原创 2016-06-15 17:11:57 · 329 阅读 · 0 评论 -
共享内存简介和mmap 函数
#include#include#include#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while(0)原创 2016-06-18 11:04:48 · 314 阅读 · 0 评论 -
System V 共享内存 和 系列函数
以下是几个共享内存函数:#include #include int shmget(key_t key, size_t size, int shmflg);void *shmat(int shmid, const void *shmaddr, int shmflg);int shmdt(const void *shmaddr);int shmctl(int shmid原创 2016-06-18 11:22:31 · 267 阅读 · 0 评论 -
linux系统编程之文件与I/O(一):文件的打开关闭
一、文件描述符对于Linux而言,所有对设备或文件的操作都是通过文件描述符进行的。当打开或者创建一个文件的时候,内核向进程返回一个文件描述符(非负整数)。后续对文件的操作只需通过该文件描述符,内核记录有关这个打开文件的信息(file结构体)。一个进程启动时,默认打开了3个文件,标准输入、标准输出、标准错误,对应文件描述符是0(STDIN_FILENO)、1(STDOUT_FILENO)原创 2016-06-18 14:50:07 · 428 阅读 · 0 评论 -
linux系统编程之文件与I/O(二):文件的读取写入
文件的随机读写到目前为止的所有文件访问都是顺序访问。这是因为所有的读和写都从当前文件的偏移位置开始,然后文件偏移值自动地增加到刚好超出读或写结束时的位置,使它为下一次访问作好准备。有个文件偏移这样的机制,在Linux系统中,随机访问就变得很简单,你所需做的只是将当前文件偏移值改变到有关的位置,它将迫使下一次read()或write()发生在这一位置。(除非文件打开时标志有 O_APPE原创 2016-06-18 15:00:29 · 864 阅读 · 0 评论 -
linux系统编程之文件与I/O(三):目录的操作
一、目录的访问功能说明:打开一个目录原型:DIR* opendir(char *pathname);返回值:打开成功,返回一个目录指针打开失败,则返回NULL功能说明:访问指定目录中下一个连接的细节原型:struct dirent* readdir(DIR *dirptr);返回值:返回一个指向dirent结构的指原创 2016-06-18 15:03:42 · 364 阅读 · 0 评论 -
linux系统编程之文件与I/O(四):文件的属性
#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while(0)#define MAJOR(a) (int)((uns原创 2016-06-18 15:07:15 · 436 阅读 · 0 评论 -
linux系统编程之文件与I/O(五):fcntl 函数与文件锁
#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while(0)int main(int argc, char *a原创 2016-06-18 15:30:45 · 415 阅读 · 0 评论 -
fork函数相关总结
fork的作用是根据一个现有的进程复制出一个新进程,原来的进程称为父进程(Parent Process),新进程称为子进程(Child Process)。系统中同时运行着很多进程,这些进程都是从最初只有一个进程开始一个一个复制出来的。在Shell下输入命令可以运行一个程序,是因为Shell进程在读取用户输入的命令之后会调用fork复制出一个新的Shell进程,然后新的Shell进程调用exec执行原创 2016-06-18 17:21:58 · 351 阅读 · 0 评论 -
linux网络编程之System V 消息队列:消息队列实现回射客户/服务器和 msgsnd、msgrcv 函数
#include#include #include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while(0)#define MSGMAX 8192原创 2016-06-18 10:52:16 · 441 阅读 · 0 评论 -
基于UDP协议的网络程序
#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while (0)void echo_ser(int sock){原创 2016-06-18 10:32:02 · 541 阅读 · 0 评论 -
epoll
http://blog.csdn.net/jnu_simba/article/details/9075719read_write.hssize_t readn(int fd, void *buf, size_t count) { size_t nleft = count; ssize_t nread; char *bufp = (char *)buf;原创 2016-06-18 10:20:23 · 405 阅读 · 0 评论 -
gmtime
#include #include #include using namespace std;int main(int argc, char *argv[]){ char sz[] = "Hello, World!"; //Hover mouse over "sz" while debugging to see its contents cout << sz << endl;原创 2016-06-16 09:58:40 · 852 阅读 · 0 评论 -
strerror
#include #include #include #include #include using namespace std;int main(int argc, char *argv[]){ char sz[] = "Hello, World!"; //Hover mouse over "sz" while debugging to see its contents c原创 2016-06-16 10:11:09 · 247 阅读 · 0 评论 -
gethostbyname
#include #include #include #include #include #include #include #include using namespace std;int main(int argc, char *argv []){ char sz [] = "Hello, World!"; //Hover mouse over "sz" while原创 2016-06-16 11:50:01 · 314 阅读 · 0 评论 -
h_errno
#include #include #include #include #include #include #include #include using namespace std;int main(int argc, char *argv []){ char sz [] = "Hello, World!"; //Hover mouse over "sz" while原创 2016-06-16 15:04:15 · 986 阅读 · 0 评论 -
简单的回射客户/服务器程序 read write
#include#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while (0)int main(void){原创 2016-06-17 16:58:04 · 507 阅读 · 0 评论 -
使用fork并发处理多个client的请求和对等通信p2p
一、在前面讲过的回射客户/服务器程序中,服务器只能处理一个客户端的请求,如何同时服务多个客户端呢?在未讲到select/poll/epoll等高级IO之前,比较老土的办法是使用fork来实现。网络服务器通常用fork来同时服务多个客户端,父进程专门负责监听端口,每次accept一个新的客户端连接就fork出一个子进程专门服务这个客户端。但是子进程退出时会产生僵尸进程,父进程要注意处理SIGCHLD原创 2016-06-17 17:41:12 · 462 阅读 · 0 评论 -
select模型
#include#include#include#include#include#include#include#include#include#include#include#define ERR_EXIT(m) \ do { \ perror(m); \ exit(EXIT_FAILURE); \ } while (0)原创 2016-06-17 17:55:57 · 275 阅读 · 0 评论 -
poll
1、一个进程能打开的最大文件描述符限制。这可以通过调整内核参数。可以通过ulimit -n来调整或者使用setrlimit函数设置, 但一个系统所能打开的最大数也是有限的,跟内存大小有关,可以通过cat /proc/sys/fs/file-max 查看2、select中的fd_set集合容量的限制(FD_SETSIZE,一般为1024) ,这需要重新编译内核。[root@local原创 2016-06-18 10:01:55 · 256 阅读 · 0 评论 -
mysql
mysql的常用信息函数mysql -p #root用户登陆mysqlselect version(); #查询当前数据库服务器版本信息select user(); #查询当前用户select curdate(); #查询当前日期select curtime(); #查询当前时间select now(); #查询当前日期时间show tables原创 2016-06-19 12:34:21 · 264 阅读 · 0 评论