
Linux系统编程和网络编程
文章平均质量分 57
记录自己学习Linux系统编程和网络编程的心里历程。
油菜花的菜
这个作者很懒,什么都没留下…
展开
-
Linux进程间的关系
Linux进程间的关系Linux下每个进程都隶属于一个进程组,每个进程都包含PID、PGID、SID。文章目录Linux进程间的关系前言一、进程组二、会话三、ps命令查看进程间的关系四、系统资源限制五、改变工作目录和根目录六、服务器程序后台化前言提示:这里可以添加本文要记录的大概内容:例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容,下面案例可供参考一、进程组#include <原创 2021-10-07 15:59:01 · 499 阅读 · 0 评论 -
Linux用户信息
文章目录一、UID、EUID、GID、EGID二、代码清单三、切换用户总结用户信息对于服务器程序的安全性来说是很重要,比如大部分服务器就必须以root身份启动,但不能以root身份运行。一、UID、EUID、GID、EGID下面这一组函数可以获取和设置当前进程的真实用户ID(UID)、有效用户ID(EUID)、真实组ID(GID)和有效组ID(EGID):#include <sys/types.h>#include <unistd.h>uid_t getuid();原创 2021-10-06 17:32:11 · 281 阅读 · 0 评论 -
Linux日志系统
工欲善其事,必先利其器。文章目录前言一、日志系统体系结构二、日志相关函数前言服务器的调试和维护都需要一个专业的日志系统一、日志系统体系结构 linux提供一个守护进程处理系统日志-syslogd,现在使用的基本都是rsyslogd。 rsyslogd守护进程既能接收用户输出日志,也能接收内核日志。 用户进程通过syslog系统调用生成系统日志,该日志输出到一个UNIX本地域socket类型的文件/dev/log中,rsyslog则监听该文件以获取用户进程的输出。系统上是通过另外一个守.原创 2021-10-06 13:25:16 · 389 阅读 · 0 评论 -
Linux服务器编程规范
文章目录Linux服务器编程规范Linux服务器编程规范提示:除了网络通信外,服务器编程还需要考虑一些细节问题,这些问题涉及广而且零碎,基本是模板式的称之为服务器编程规范。 1. Linux服务器程序一般以后台进程形式运行。后台进程又称守护进程。它没有控制终端,因而也不会意外接收到用户输入。守护进程的父进程通常是init进程(PID 为1的进程)。 2. Linux服务器程序通常有一套日志系统,它至少能输出日志到文件,有的高级服务器还能输出日志到专门的UDP服务器。大部分后台进程都在/var原创 2021-10-06 10:33:49 · 188 阅读 · 0 评论 -
高级I/O函数
创建文件描述符的函数pipe函数#include <unistd.h>int pipe(int pipefd[2]);成功:返回0失败:返回-1,并设置errno。功能:pipe创建两个文件描述符pipefd[0],pipefd[1]。pipefd[0]负责读管道,pipifd[1]负责写管道。默认情况下是这一对文件描述符是阻塞的。用read系统调用读取空管道,read将会被阻塞,直到有数据写入。用write系统调用写满的管道,write将会被阻塞,直到有数据读出。将文件原创 2021-10-05 13:36:40 · 138 阅读 · 0 评论 -
网络信息相关函数
gethostbyname和gethostbyaddrgethostbyname根据主机名称获取主机的完整信息,gethostbyaddr根据IP地址获取主机的完整信息。gethostname通常先在本地/etc/hosts配置文件查找,如果没有再向DNS服务器查找。#include <unistd.h>#include <sys/socket.h>int gethostname(char *name, size_t len); struct hostent *geth原创 2021-10-04 19:12:03 · 283 阅读 · 0 评论 -
socket选项详解
fcntl系统调用是控制文件描述符的通用POSIX方法,专门用来读取和设置socket文件描述符属性的方法:#include <sys/types.h> /* See NOTES */#include <sys/socket.h>int getsockopt(int sockfd, int level, int optname, void *optval, socklen_t *optlen);int setsockopt(int sockfd, int原创 2021-10-04 16:29:12 · 921 阅读 · 0 评论 -
地址信息函数
地址信息函数#include <sys/socket.h>int getsockname(int sockfd, struct sockaddr *addr, socklen_t *addrlen);int getpeername(int sockfd, struct sockaddr *addr, socklen_t *addrlen);getsockname获取sockfd对应的本端socket地址,并将其存到addr中,addrlen是该地址的长度。如果实际socket地址长度大原创 2021-10-04 13:37:11 · 110 阅读 · 0 评论 -
通用数据读写函数
#include <sys/types.h>#include <sys/socket.h>ssize_t recvmsg(int sockfd, struct msghdr *msg, int flags);ssize_t sendmsg(int sockfd, struct msghdr *msg, int flags);struct msghdr { void *msg_name; /* socket地址 */ socklen_t原创 2021-10-04 13:02:49 · 129 阅读 · 0 评论 -
UDP数据读写
UDP数据读写系统调用#include <sys/types.h>#include <sys/socket.h>ssize_t recvfrom(int sockfd, void *buf, size_t len, int flags, struct sockaddr *src_addr, socklen_t *addrlen);ssize_t sendto(int sockfd, const void *buf, size_t len, int flags,原创 2021-10-04 12:54:05 · 677 阅读 · 0 评论 -
数据读写flags选项的使用-MSG_OOB
客户端代码#include <iostream>#include <cstring>#include <cassert>#include <unistd.h>#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/socket.h>#include <arpa/inet.h>#include原创 2021-10-04 11:49:51 · 420 阅读 · 0 评论 -
数据的读写
数据读写#include <sys/types.h>#include <sys/socket.h>ssize_t recv(int sockfd, void *buf, size_t len, int flags);ssize_t send(int sockfd, const void *buf, size_t len, int flags);recv读取sockfd上的数据,buf和len分别指定缓冲区的位置和大小,flag通常是设为0。返回值是实际读取到数据的长度。原创 2021-10-03 19:54:59 · 196 阅读 · 0 评论 -
字节序转换API
字节序转换API#include <netinet/in.h>typedef unsigned long UL;typedef unsigned short US;UL htonl(UL data);US htons(US data);UL ntohl(UL data);US ntohs(US data);计算机硬件有两种储存数据的方式:大端字节序(big endian)和小端字节序(little endian)。举例来说,数值0x2211使用两个字节储存:高位字节是0x22原创 2021-10-03 18:12:17 · 180 阅读 · 0 评论 -
IP地址转换函数
IP地址转换函数ipv4地址之间的转换#include <arpa/inet.h>in_addr_t inet_addr(const char* strptr);int inet_aton(const char* cp, struct in_addr* inp);char* inet_ntoa(struct in_addr_in);ip地址的表示:字符串:点分十进制(记录日志需要转换为字符串)。整数:存储ip地址的32bit(编程的时候需要转换为整数)。#include &l原创 2021-10-03 18:09:25 · 466 阅读 · 0 评论 -
服务器编程基础API
基础API创建socketsocket函数命名socket监听socket接受连接发起连接关闭连接创建socketsocket函数 #include <sys/types.h> #include <sys/socket.h> int socket(int domain, int type, int protocol);命名socket监听socket接受连接发起连接关闭连接...原创 2021-10-03 18:05:43 · 593 阅读 · 0 评论