码迷,mamicode.com
首页 > 系统相关 > 详细

linux程序设计——个人总结

时间:2015-07-27 16:26:41      阅读:201      评论:0      收藏:0      [点我收藏+]

标签:

linux程序设计——个人总结

    到今天为止,《linux程序设计》学习基本完成了。从五月下旬开始接触linux,学习安装Ubuntu14.04,六月份开始学习《linux程序设计》,实习考试之余花费了足足快两个月的时间,看完大部分章节,敲了一些代码,文章都在这里--linux程序设计
    仔细看过的章节:第一章入门、第二章shell程序设计、第三章文件操作、第四章linux环境、第七章数据管理、第八章MySQL、第九章开发工具、第十一章进程和信号量、第十二章POSIX线程、第十三章进程间通信:管道、第十四章信号量共享内存消息队列、第十五章套接字。
    没有细看的章节:第五章终端、第六章屏幕控制(curses)、第十章调试、第十六章X视窗、第十七章用Qt进行KDE编程、第十八章linux标准。
    在看第一章第二章的时候,同时学习了《linux入门基础》的视频,在这里--linux入门基础
    第三章第四章看的有点枯燥,有些函数只是给出了函数原型(比如有些系统调用函数),后面的章节还是经常用到的。
    第七章数据管理介绍动态内存管理和文件锁定(文件锁,区域锁定,死锁)。   
    第八章MySQL的一些基本语法之前就有看过,主要新学习了怎样使用C语言连接MySQL数据库访问MySQL数据。
    第九章开发工具主要了解多文件编译和makefile语法。
    七月份主要就是学习进程信号量套接字这些新内容,还挺有意思的。
    第十一章进程和信号量fork函数复制父进程,exec替换进程,结合在一起就可创建新进程所需的一切。
    第十二章POSIX线程中子线程共享父线程的全局变量,文件描述符等。还介绍了互斥量和多线程。
    第十三章管道中介绍父进程和子进程的通信,父进程向管道中写入数据,子进程从管道中读取数据(因为创建新进程时,原先打开的文件描述符扔将保持打开状态。
    第十四章信号量共享内存消息队列中介绍信号量PV操作,P(-1)挂起进程,V(+1)释放进程,共享内存把不同进程之间共享的内存安排为同一段物理内存,这样可以在不同进程之间传递数据,消息队列独立于发送和接收进程而存在,创建消息队列、添加消息到消息队列、从消息队列获取消息、控制消息队列完成进程间的通信。
    第十五章套接字用于在计算机网络中的通信,套接字有点类似于管道,但套接字明确地将客户和服务器区分开。
    套接字通信的原理
    基于套接字系统的服务端:
    首先服务器程序使用socket创建一个套接字(类似于文件描述符)
    然后使用bind给套接字命名,但是在命名之前必须给出套接字的标识符(这个标识符允许linux将进入的针对特定端口号的连接转到正确的服务器进程,标识符是一个用于特定服务的端口号)
    然后服务器进程就开始等待客户连接到这个命名套接字。
    listen的作用是创建一个监听队列并将用于存放来自客户的进入连接。
    accept的作用是服务器接收客户的连接。
    服务器调用accept时,它会创建一个与原有的命名套接字不同的新套接字。这个新套接字只用于与这个特定的客户进行通信,而命名套接字则被保留下来继续处理来自其他客户的连接。后续的客户将在监听队列中等待,直到服务器再次准备就绪。
    基于套接字系统的客户端:
    首先客户程序使用socket创建一个未命名套接字
    然后将服务器的命名套接字作为一个地址来调用connect与服务器建立连接。
    一旦连接成功,就可以像使用底层的文件描述符那样用套接字实现双向的数据通信。



版权声明:本文为博主原创文章,未经博主允许不得转载。

linux程序设计——个人总结

标签:

原文地址:http://blog.csdn.net/yiranant/article/details/47085079

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!