
linux
风尘璞
新手上路,写的不好,请多包涵,有错的请多多指教!
展开
-
C/S和B/S的区别
1.什么是C/S结构C/S (Client/Server)结构,即客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。C/S结构可以看做是胖客户端架构。客户端实现绝大多数的业务逻辑处理和界面展示,作为客户端的部分需要承受很大的压力,从分利用客户端的资源,对客户机的要求较高。其实现可以原创 2017-01-11 23:06:42 · 844 阅读 · 0 评论 -
自己实现将整型转化为字符型
不调用API函数,自己实现将整型转化为字符型原创 2016-12-15 17:42:35 · 2110 阅读 · 0 评论 -
TCP层与数据链路层流量控制的区别
数据链路层和TCP层都是面向连接的,都采用窗口协议来实现流量控制,然而两个窗口协议是不一样的。在数据链路层,由于收发双方是点到点的连接,其流量控制策略相对较为简单,接收窗口和发送窗口即为固定大小的缓冲区的个数,发送方的窗口调整,即缓冲区的覆盖依赖于确认帧的到达,由于信号传播延时和CPU的处理时间等都对相对较为稳定,所以发送方的数据帧和接收方的确认帧,其发送和接收时间是可估计的。在TCP层,原创 2016-12-09 17:18:34 · 8596 阅读 · 1 评论 -
GCC原理
在Linux平台上,最流行的编译系统是GCC(GNU Compile Collection)。GCC也是GNU发布的最著名的软件之一。GCC的功能非常强大,主要体现在两方面。 1) GCC可以为x86、ARM、MIPS等不同体系结构的硬件平台编译程序。 2) GCC可以编译C、C++、Pascal、Java等数十种高级语言。GCC的这两项特性对嵌入式应用开发及其重要。此外,原创 2016-11-27 09:11:15 · 836 阅读 · 0 评论 -
写一个日历函数,输出下一秒
编写一个函数,要求输入年月日时分秒,输出该年月日时分秒的下一秒。如输入2004年12月31日23时59分59秒,则输出2005年1月1日0时0分0秒原创 2016-11-26 20:53:38 · 479 阅读 · 0 评论 -
约瑟夫环问题(数组实现)
设编号为1,2,… n的n个人围坐一圈,约定编号为k(1#include #include int Josephu(int n, int m){ int flag, i, j = 0; int *arr = (int *)malloc(n * sizeof(int)); for (i = 0; i < n; ++i) arr[i] = 1; for (i原创 2016-12-08 22:26:55 · 4477 阅读 · 2 评论 -
多线程如何同步
在这里简单说一下linux多线程同步的方法吧(win上有一定的差别,也有一定的累似)1:线程数据,每个线程数据创建一个键,它和这个键相关联,在各个线程里,都使用这个键来指代线程数据,但在不同的线程里,这个键代表的数据是不同的,在同一个线程里,它代表同样的数据内容。以此来达到线程安全的目的。2:互斥锁,就是在各个线程要使用的一些公共数据之前加锁,使用之后释放锁,这个是非常常用的线程安全控制的原创 2016-12-07 22:21:06 · 571 阅读 · 0 评论 -
TCP三次握手过程
一、TCP报文格式 TCP/IP协议的详细信息参看《TCP/IP协议详解》三卷本。下面是TCP报文格式图:图1 TCP报文格式 上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+原创 2016-12-13 19:34:30 · 309 阅读 · 0 评论 -
寻找字符串中重复出现的字符
寻找字符串中重复出现的字符,按照它重复出现的顺序,把重复出现的字符显示出来原创 2016-11-24 20:24:53 · 3315 阅读 · 0 评论 -
网络编程中多线程与多进程的区别
1、进程:子进程是父进程的复制品。子进程获得父进程数据空间、堆和栈的复制品。2,线程:相对与进程而言,线程是一个更加接近与执行体的概念,它可以与同进程的其他线程共享数据,但拥有自己的栈空间,拥有独立的执行序列。两者都可以提高程序的并发度,提高程序运行效率和响应时间。线程和进程在使用上各有优缺点:线程执行开销小,但不利于资源管理和保护;而进程正相反。同时,线程适合于在SMP机器上运行,而原创 2016-12-06 22:47:17 · 1934 阅读 · 1 评论 -
Linux下常用命令详解
Linux下常用命令详解原创 2016-11-23 21:54:34 · 423 阅读 · 0 评论 -
select函数的使用
I/O 多路复用阻塞函数在完成其指定的任务以前不允许程序继续向下执行。如:当服务器运行到accept语句时而没有客户端请求连接,服务器就会停止在accept语句上等待连接请求的到来,这种情况称为堵塞,而非堵塞操作则可以立即完成。如:如果你希望服务器仅仅检查是否有客户在等待连接,有就接受连接,否则就继续做其他的事情,则可以通过使用select系统调用来实现,除此之外,select还可以同时监听多原创 2016-12-05 22:28:21 · 545 阅读 · 0 评论 -
合并两个链表成一个升序链表
两个链表合并成一个升序链表原创 2016-12-12 22:01:49 · 2345 阅读 · 0 评论 -
多进程编程的优缺点
多进程优点:每个进程互相独立,不影响主程序的稳定性,子进程崩溃没关系; 通过增加CPU,就可以容易扩充性能; 可以尽量减少线程加锁/解锁的影响,极大提高性能,就算是线程运行的模块算法效率低也没关系; 每个子进程都有2GB地址空间和相关资源,总体能够达到的性能上限非常大多线程缺点:逻辑控制复杂,需要和主程序交互; 需要跨进程边界,如果有大数据量传送,就不太好,适合小数据量传送、密原创 2017-01-02 21:59:08 · 4276 阅读 · 0 评论 -
系统调用与库函数的区别?
系统调用与库函数的区别原创 2016-12-22 22:35:44 · 664 阅读 · 0 评论 -
多线程和多进程之间的区别
1)需要频繁创建销毁的优先用线程这种原则最常见的应用就是Web服务器了,来一个连接建立一个线程,断了就销毁线程,要是用进程,创建和销毁的代价是很难承受的2)需要进行大量计算的优先使用线程所谓大量计算,当然就是要耗费很多CPU,切换频繁了,这种情况下线程是最合适的。这种原则最常见的是图像处理、算法处理。3)强相关的处理用线程,弱相关的处理用进程什么叫强原创 2017-01-03 20:52:49 · 577 阅读 · 0 评论 -
进程的三个基本状态,以及三个状态之间切换的条件
一个进程在运行期间,不断地从一种状态转换到另一种状态,它可以多次处于就绪状态和执行状态,也可以多次处于阻塞状态。 (1) 就绪->执行就绪状态是指进程获得了调度程序为之分配的除了CPU时间之外的其他必要资源,只要CPU时间一到位就可执行了。处于就绪状态的进程,当进程调度程序为之分配了处理机后,该进程便由就绪状态转变成执行状态。 (2) 执行->就绪处于执行状态的进程在其执行过程原创 2017-01-10 21:20:32 · 20202 阅读 · 1 评论 -
进程的组成部分
在Linux系统中进程由以下三部分组成:①进程控制块PCB;②数据段;③正文段。 Linux系统为了节省进程控制块所占的内存空间,把每个进程控制块分成两部分。一部分常驻内存,不管进程是否正占有处理器运行,系统经常会对这部分内容进行查询和处理,常驻部分内容包括:进程状态、优先数、过程特征、数据段始址、等待原因和队列指针等,这是进行处理器调度时必须使用的一些主原创 2017-01-07 23:11:00 · 10971 阅读 · 0 评论 -
new和malloc的区别
new 和malloc的区别1,malloc与free是C++/ C语言 的标准库函数,new/delete是C++的运算符。它们都可用于申请动态和释放内存。2. new 初始化对象,调用对象的构造函数,对应的delete调用相应的析构函数,malloc仅仅分配内存,free仅仅回收内存3、new可以认为是malloc加构造函数的执行。new出来的指针是直接带类原创 2017-01-06 22:52:05 · 428 阅读 · 0 评论 -
判断大端字节序和小端字节序
判断大端字节序和小端字节序原创 2016-12-29 22:27:37 · 570 阅读 · 0 评论 -
数据库与文件进行数据存储时的区别
数据库与文件进行数据存储时的区别原创 2016-12-28 23:09:57 · 1831 阅读 · 0 评论 -
怎样选择TCP还是选择UDP
TCP一般用于文件传输(FTP HTTP 对数据准确性要求高,速度可以相对慢),发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用),远程登录(TELNET SSH 对数据准确性有一定要求,有连接的概念)等等;UDP一般用于即时通信(QQ聊天 对数据准确性和丢包要求比较低,但速度必须快),在线视频(RTSP 速度一定要快,保证视频连续,但是偶尔花了一个图像帧,人们还原创 2017-01-05 22:46:18 · 5667 阅读 · 0 评论 -
端口号、IP、网关的作用
ip(网络之间互连的协议):网络之间互连的协议(IP)是Internet Protocol的外语缩写, 中文缩写为“网协”.网络之间互连的协议也就是为计算机网络相互连接进行通信而设计的协议。在因特网中,它是能使连接到网上的所有计算机网络实现相互通信的一套规则,规定了计算机在因特网上进行通信时应当遵守的规则。任何厂家生产的计算机系统,只要遵守IP协议就可以与因特网互连互通。IP地址具有唯一性原创 2017-01-04 21:50:16 · 4841 阅读 · 0 评论 -
Linux系统启动过程
Linux系统启动过程原创 2016-12-27 21:52:43 · 298 阅读 · 0 评论 -
字符串移位
将字符串循环右移n位,如abcdefg右移两位变成fgabcde原创 2016-12-26 22:48:40 · 382 阅读 · 0 评论 -
用递归判断一个数组是否是递增数组
用递归判断一个数组是否是递增数组原创 2016-12-24 23:29:24 · 699 阅读 · 0 评论 -
斐波拉契数列
一只青蛙一次可以跳上1—n级台阶。求该青蛙跳上一个n级的台阶总共有多少种跳法?原创 2016-12-18 22:19:41 · 446 阅读 · 0 评论 -
TCP三次握手
TCP三次握手过程原创 2016-12-23 23:32:01 · 309 阅读 · 0 评论 -
两种并发式服务器的选择
对于有多个客户端对服务器发起连接请求时,建立起连接的时候,这时服务器就得选择使用并发式的服务器去接受客户端,如众所周知的,一般的并发服务器都是利用创建线程来实现的,但是当我们有成百上千个客户端连接时,这时服务器得判断到底是哪个客户端发送的信息,所以就得在线程中不停得切换线程,这样一来就消耗太多的CPU资源,造成了许多额外的系统开销,所以有第二种方法,就是在服务器accept()函数接受连接请求之前原创 2016-12-04 19:44:02 · 452 阅读 · 0 评论 -
实现字符串中寻找字串
寻找字符串中的子串原创 2016-12-14 22:43:51 · 541 阅读 · 0 评论 -
Linux之—网络通信(TCP)
TCP的上一层是应用层,TCP向应用层提供可靠的面向对象的数据流传输服务,TCP数据传输实现了从一个应用程序到另一个应用程序的数据传递。它能提供高可靠性通信(即数据无误、数据无丢失、数据无失序、数据无重复到达的通信。),应用程序通过向TCP层提交数据接发送/收端的地址和端口号而实现应用层的数据通信。通过IP的源/目的可以惟一地区分网络中两个设备的连接,通过socket的源/目的可以惟一地区分网原创 2016-11-06 21:16:44 · 652 阅读 · 0 评论 -
浅谈Linux死锁检测
浅谈Linux死锁检测转载 2016-10-25 21:37:02 · 1206 阅读 · 0 评论 -
上帝视角——我是一个线程
第一回 初生牛犊我是一个线程,我一出生就被编了个号:0x3704,然后被领到一个昏暗的屋子里,在这里我发现了很多和我一模一样的同伴。我身边的同伴0x6900 待的时间比较长,他带着沧桑的口气对我说:“我们线程的宿命就是处理包裹。把包裹处理完以后还得马上回到这里,否则可能永远回不来了。”我一脸懵懂,“包裹,什么包裹?”“不要着急,马上你就会明白了,我们这里是不养闲转载 2016-10-14 23:36:04 · 306 阅读 · 0 评论 -
Linux进程通信之————消息队列
Linux进程通信之————消息队列原创 2016-10-24 20:00:38 · 419 阅读 · 0 评论 -
Linux---进程间通信之————共享内存
Linux---进程间通信之————共享内存原创 2016-10-23 22:07:03 · 409 阅读 · 0 评论 -
Linux之------进程间通信
Linux之------进程间通信原创 2016-10-22 23:29:27 · 2359 阅读 · 7 评论 -
Linux之——守护进程
Linux系统启动时会启动很多系统服务进程,比如inetd,这些系统服务进程没有控制终端,不能直接和用户交互。其它进程都是在用户登录或运行程序时创建,在运行结束或用户注销时终止,但系统服务进程不受用户登录注销的影响,它们一直在运行着。这种进程有一个名称叫守护进程(Daemon)。 下面我们用ps axj命令查看系统中的进程。参数a表示不仅列当前用户的进程,也列出所有其他用户的进程,参数x表原创 2016-11-02 21:38:48 · 236 阅读 · 0 评论 -
C语言之函数的使用
c语言中函数名的作用,及我们为什么要在程序中使用函数名原创 2016-09-11 18:19:30 · 588 阅读 · 0 评论 -
c语言之野指针与数组
野指针的注意事项,及数组与指针的区别原创 2016-09-10 20:19:30 · 654 阅读 · 0 评论 -
格式化输入与输出
格式化输入与输出 printf(“格式控制”,输出列表); 1):“格式控制”是用双撇号括起来的字符串,通常也叫”转换控制字符串”,它包括两种信息。a:格式说明。格式说明由”%”和格式字符组成,如%d、%f等,作用是将输出的数据转换成指定的格式输出。格式说明总是由”%”字符开始。b:普通字符。普通字符即需要原样输出的字符。 2):”输出列表”是需要输出的一些数据。 s原创 2016-07-21 11:03:57 · 632 阅读 · 0 评论