
Linux系统编程
文章平均质量分 86
starfoxin
这个作者很懒,什么都没留下…
展开
-
浮点数精度丢失问题
原则:计算机内部所有的运算都是二进制运算,所以任意数据会首先被转化为二进制存储。在将10进制数转化为2进制数的时候,按照: 整数除二取余,小数乘二取整 的原则进行转换。 但是,大多数情况下,小数部分不能全部被消除,如: 0.15*2 = 0.3 0.3*2 = 0.6 0.6*2 = 1.2 1.2*2 = 2.4 2.4*2 = 4.8 4...原创 2019-12-05 17:16:17 · 762 阅读 · 0 评论 -
Linux系统编程.NO12——TCP和UDP
9.6.TCP服务9.6.1.TCP服务流程再往下就是close函数关闭套接字了。服务端先启动,进行一系列(socket~accept)的准备工作,如果没有客户端请求,则服务器处于阻塞状态,等待请求。客户端启动后,首先向服务器端发起连接请求,得到服务器同意后,连接建立成功,双方就可以进行通信,客户机完成通信后释放连接,关闭套接字。9.6.2.TCP服务端流程函数1.int socke...原创 2019-08-07 09:17:01 · 277 阅读 · 0 评论 -
Linux系统编程.NO11——c/s模式和字节序
9.网络编程9.1.网络编程前提在正式了解网络编程代码之前,要先熟悉Linux上对于网络的一些常用命令。如ifconfig,ping,netstar,route,还应该了解一些网络参数配置所在文件,如/etc/hosts,/etc/host.conf,/etc/resolv.conf. /etc/sysconfig/network-scripts/ifcfg-eth0.网络编程的主要目的是要...原创 2019-08-07 09:11:52 · 266 阅读 · 0 评论 -
Linux系统编程.NO8——gdb、内存与指针
6.C语言指针与内存6.1.gdb调试工具编写完.c代码后,编译时候加上-g参数,如gcc -g mun -o mun.c,得到的可执行文件就可以通过gdb工具进行调试。命令gdb+可执行文件,进入gdb交互模式,按L键可以列出部分源代码,再按就继续显示后面的。按回车表示继续执行上一次的命令,命令break+行号可以在该行设置断点,命令start开始调试代码,命令p+变量名,就可以打印出当前...原创 2019-08-02 09:35:07 · 404 阅读 · 0 评论 -
Linux系统编程.NO14——IPC与IPC实现
11.进程间通信11.1.IPC概念IPC是指进程间通信,这里主要是指system V IPC。主要包括消息队列,共享内存和信号量三种方式。这三种IPC的使用方法类似,都属于系统的IPC资源。IPC有一些相通的属性,IPC只能在本机通信中使用,不能跨网络,IPC的生存期与内核相同,也就是除非用户删除它,否则将永远存在。每个IPC资源都有一个关键字key(就像该资源的文件名一样,是一个长整...原创 2019-08-08 09:17:09 · 448 阅读 · 0 评论 -
Linux系统编程.NO13——信号与管道
10.信号与管道10.1.信号的概念Linux系统中,信号是一个32位的整型,每个信号代表一种信息,都以 SIG开头,使用命令kill -l查看所有信号。前31位的信号是不可靠信号,后面的是可靠信号,不可靠是指不支持排队,可能造成信号丢失。常见信号有:1)SIGHUP:使进程执行exit动作,用于退出终端时对终端下所有进程发出该信息以关闭进程,要么nohup忽略该信号,要么写成一个daemo...原创 2019-08-08 09:14:09 · 511 阅读 · 0 评论 -
Linux系统编程.NO10——线程控制
8.线程控制8.1.线程概念1.主线程生成子线程,两者公用内数据段和代码段,不会产生内存复制,生成代价小。线程有独立的堆栈。2.若主线程终结,则子线程也不能继续。3.线程间通信比进程间通信消耗资源更小。4.进程的运行稳定性更加优越。5.线程是程序执行的最小单位,进程是资源分配的最小单位。8.2.线程基本函数1.int pthread_create(pthread_t *thread...原创 2019-08-05 10:03:52 · 257 阅读 · 0 评论 -
Linux系统编程.NO9——进程控制
7.进程控制7.1.父子进程进程是操作系统中的一个活动,进程才是使用和占用内存的单位,进程间基本上独立,相互不影响。使用fork创建的子进程,采用用时复制技术(COW),父子进程的代码段都是一样并且只读,其他的数据段和堆栈不一定会复制,如果父子进程的数据段和堆栈内容一样,那么就不会新复制这部分内存空间,如果不一样,就会新复制空间。使用vfork创建的子进程,父子进程共用内存空间,即使数据改...原创 2019-08-05 09:59:51 · 236 阅读 · 0 评论 -
Linux系统编程.NO7——目录操作函数
5. 目录文件管理函数5.1. 目录文件概念目录在Linux中也是文件,也有对应的文件指针,每次读目录之前也要先打开目录,然后目录指针就出现了,第一次读就是第一个文件的信息,然后第二次读就是第二个文件的信息,以此类推,最后读完了就会返回一个空指针。目录指针和文件指针一样,用于定位目录中的各个单位的位置,而目录文件指针只是用于指向目录指针指向的文件的具体信息。5.2. 管理函数*1. DI...原创 2019-08-01 09:32:38 · 262 阅读 · 0 评论 -
Linux系统编程.NO6——文件属性与链接文件
4.文件属性管理4.1.获取文件属性函数**1. int stat(const char file_name,struct stat buf);函数用于获取指定文件的属性并且放入buf中,返回值为-1表示函数执行错误,第一个参数是字符串,也就是文件名,第二个参数必须要是一个struct stat类型的值,然后取其地址就可以了,如:struct stat buf;stat(“/etc/pa...原创 2019-08-01 09:27:05 · 267 阅读 · 0 评论 -
Linux系统编程.NO5——基本文件控制
3.文件I/O基本理论3.1.索引节点inodeLinux采用“按名存取”的方式访问文件,每个文件除了文件名以外的属性都保存在inode当中,inode是一个结构体,所以每个文件的i节点中都存着许多属性:i_mode文件类型和权限,i_uid拥有者标识符,i_size文件长度(以字节为单位),i_atime最后一次访问时间,i_ctime节点最后改变的时间,i_mtime文件内容最后改变的时间...原创 2019-08-01 09:18:59 · 273 阅读 · 0 评论 -
Linux系统编程.NO4——makefile总结性理解
关于makefile我也是从别人的贴子中总结出来的,而且只总结了一部分,如果想要了解得更多,可以去访问原文:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=10610714&page=12.4.Makefile总述2.4.1.Makefile主要内容1.显...原创 2019-07-30 17:20:13 · 172 阅读 · 0 评论 -
Linux系统编程.NO3——makefile基本用法
关于makefile我也是从别人的贴子中总结出来的,而且只总结了一部分,如果想要了解得更多,可以去访问原文:http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=408225&extra=&authorid=10610714&page=12.Makefile基础2.1.Makefile概述会不会写Makef...原创 2019-07-30 17:15:30 · 267 阅读 · 0 评论 -
Linux系统编程.NO2——环境变量与时间函数
1. 系统程序设计基础1.1. 进程以及程序的存储结构Linux的内存分了很多部分,以此来有效管理各种数据,有代码区,数据区,未初始化数据区(bss),堆(动态内存分配),栈(函数参数,返回值,局部变量等)。注意数据段,bss段的变量生存周期是整个进程的运行过程,局部变量生存周期是函数内部。1.2. 命令行参数main函数的完整格式是int main(int argc,char *argv...原创 2019-07-30 15:49:22 · 352 阅读 · 0 评论 -
Linux系统编程.NO1——编程常用函数声明
Linux系统编程**函数声明1.int main(int argc,char *argv[]);2.char *getenv(const char *var);3.void unsetenv(cosnt char *var);4.int putenv(const char *string);5. int setenv(const char *var,const char *val,i...原创 2019-07-30 15:32:50 · 427 阅读 · 0 评论