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程序设计——个人总结相关推荐

  1. linux程序设计---序

    近段时间,一直在学习<Linux程序设计(第三版)>这本书.书中的知识点(个人认为是知识点)记作笔记,方便以后复习使用. 实验环境为:Ubuntu11.04 或者Ubuntu12.04,两 ...

  2. Linux程序设计实验项目六,《linux程序设计》实验教学大纲

    <linux程序设计>实验教学大纲 课程名称:Linux程序设计 课程编号:408412420408436407 适用专业:计算机科学与技术网络工程软件工程 总 学 分:3 总 学 时:4 ...

  3. linux程序设计项目报告,Linux程序设计实验报告大作业

    Linux程序设计实验报告大作业 实 验 报 告 课程名称: LINUX程序设计 学 院: 计算机学院 专 业: 软件工程 班 级: 14-3 姓 名: 张正锟 学 号: 201401061038 2 ...

  4. linux系统程序问题报告,Linux程序设计实验报告.docx

    Linux程序设计实验报告.docx Linux程序设计实验指导书实验类别课内实验 实验课程名称Linux程序设计实验室名称软件工程专业实验室 实验课程编号 000 总 学 时32 学 分 2 适用专 ...

  5. 读书笔记之:Linux程序设计(第4版)(ch1-7) [ 学如逆水行舟,不进则退 ]

    <Linux 程序设计>是一本非常好的书,内容很全面,并且对于给出的例子都进行了详细的讲解.并且是通过一个的小型的项目的来讲解的:开始是使用shell进行编程实现,然后逐步进行改进,使用C ...

  6. [Linux] 读书笔记之:Linux程序设计(第4版)(ch1-7) [ 学如逆水行舟,不进则退 ]...

    <Linux 程序设计>是一本非常好的书,内容很全面,并且对于给出的例子都进行了详细的讲解.并且是通过一个的小型的项目的来讲解的:开始是使用shell进行编程实现,然后逐步进行改进,使用C ...

  7. Linux程序设计(第4版)

    查看书籍详细信息: Linux程序设计(第4版) 编辑推荐 最负盛名的Linux程序设计图书 内容全面深入 全球开源社区集体智慧结晶 内容简介 本书讲述了Linux系统及其他UNIX风格的操作系统上的 ...

  8. 读书笔记-Linux程序设计

    文章目录 Linux程序设计 一.入门 二.shell程序设计 三.文件操作 四.linux环境 五.终端 六.使用curses函数库管理基于文本的屏幕 七.数据管理 CSDN 八.MySQL 九.开 ...

  9. Linux程序设计—多进程编程

    文章目录 1.进程 1.1.创建进程 1.1.1.fork() 1.1.2.vfork() 1.2.执行进程--exec函数族 1.3.进程退出 1.3.1.exit()和_exit() 1.4.进程 ...

  10. 浙江大学Linux程序设计报告,浙江大学Linux程序设计实验报告材料.doc

    实用文档 文案大全 Linux程序设计实验报告1 --操作系统基本命令使用 一.实验目的 1.通过对Emacs.vi.vim.gedit文本编辑器的使用,掌握在Linux环境下文本文件的编辑方法: 2 ...

最新文章

  1. 无法访问D盘,执行页内操作时的错误
  2. node--静态文件托管,路由,模板引擎
  3. php多用户商城,php多用户商城选择开源的好
  4. python的应用范围有哪些_Python主要应用场景有哪些?
  5. Android之调用微信登陆、分享、支付
  6. fpga如何约束走线_FPGA时序约束实战篇之多周期路径约束
  7. Bootstrap 支持的设备类型
  8. k8s 离线安装_使用 Kind 在离线环境创建 K8S 集群
  9. 我的八年程序之路(二)三月方便面换来800月薪
  10. python 调用 C++ code
  11. warning: initialization from incompatible pointer type error, forbidden解决
  12. tomcat中 JVM 内存溢出及合理配置
  13. 学习Oracle 最好的5本书
  14. linux修复windows,Linux十大妙用:充当Windows修复工具
  15. Microsoft Excel 已停止工作
  16. iov_iter操作
  17. antv g2字体阴影_antv g2 notes
  18. 联想thinkcentre微型计算机,联想ThinkCentre一体机_ThinkCentre台式机-ThinkPad官网
  19. 【Origin】Origin准确标注某点
  20. Python自动打码,DdddOcr通用验证码自动识别库

热门文章

  1. python自动填表单_用python-webdriver实现自动填表
  2. 微粒群算法(二、案例实现)
  3. 中科院的matlab课件,中科院matlab课件
  4. norton服务器 位置,逐步配置企业版Symantec Norton防病毒服务器
  5. 数学建模——BP神经网络模型Python代码
  6. Enigma密码机初步解析
  7. dmz和端口映射_端口映射和DMZ的区别
  8. PHP-Smarty
  9. 惠普电脑u盘重装系统步骤_惠普电脑优盘装系统步骤
  10. LAMP架构部署论坛