[首页]
[文章]
[教程]
首页
Web开发
Windows开发
编程语言
数据库技术
移动平台
系统服务
微信
设计
布布扣
其他
数据分析
首页
>
系统服务
> 详细
linux程序设计——个人总结
时间:
2015-07-27 16:24:16
阅读:
247
评论:
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
)
登录后才能评论!
分享档案
更多>
2021年09月23日 (328)
2021年09月24日 (313)
2021年09月17日 (191)
2021年09月15日 (369)
2021年09月16日 (411)
2021年09月13日 (439)
2021年09月11日 (398)
2021年09月12日 (393)
2021年09月10日 (160)
2021年09月08日 (222)
最新文章
更多>
2021/09/28 scripts
2022-05-27
vue自定义全局指令v-emoji限制input输入表情和特殊字符
2022-05-27
9.26学习总结
2022-05-27
vim操作
2022-05-27
深入理解计算机基础 第三章
2022-05-27
C++ string 作为形参与引用传递(转)
2022-05-27
python 加解密
2022-05-27
JavaScript-对象数组里根据id获取name,对象可能有children属性
2022-05-27
SQL语句——保持现有内容在后面增加内容
2022-05-27
virsh命令文档
2022-05-27
教程昨日排行
更多>
1.
list.reverse()
2.
Django Admin 管理工具
3.
AppML 案例模型
4.
HTML 标签列表(功能排序)
5.
HTML 颜色名
6.
HTML 语言代码
7.
jQuery 事件
8.
jEasyUI 创建分割按钮
9.
jEasyUI 创建复杂布局
10.
jEasyUI 创建简单窗口
友情链接
汇智网
PHP教程
插件网
关于我们
-
联系我们
-
留言反馈
- 联系我们:wmxa8@hotmail.com
© 2014
bubuko.com
版权所有
打开技术之扣,分享程序人生!