博客专栏  >  编程语言   >  Linux 环境编程学习笔记

Linux 环境编程学习笔记

Linux 环境编程的学习笔记,包含了文件IO、进程控制、线程控制、高级IO等内容。内容由浅入深,对初学者来说是一份不错的参考资料。

关注
286 已关注
137篇博文
  • 0-linux 编程学习笔记导航

    基础001 gcc常用选项 002 静态库的创建与使用 003 共享库的创建与使用文件IO004 文件IO-从printf开始 005 文件IO-read/write/open 006 文件...

    2016-10-09 20:26
    4336
  • 136-基于 UDP 协议的通信

    前面我们所实现的通信程序,是基于 TCP 协议的,有连接的方式。也就是在创建 socket 的时候,socket 函数第二个参数总是指定为 SOCK_STREAM,第三个 protocol 参数指定为...

    2017-04-01 20:15
    674
  • 128-字节序

    是不是感觉很突兀,前面的博文还有讲异步 IO 来着。从现在开始,我们将步入网络编程的轨道了。但是又怕初学者难以适应(我也是初学者^_^),所以不能大张旗鼓的喊着,网络编程开始啦……另一方面,apue ...

    2017-03-29 20:13
    579
  • 129-IPv4 地址

    网络真的是一个很复杂很复杂的东西。网络编程更是相当复杂,尽管它很复杂,也不过是由人发明的,基础就在那,就看你学不学。我们使用的网络目前都是 IPv4 (IP version 4) 版本的,所以使用到的...

    2017-03-30 15:26
    623
  • 130-IP 地址和端口号

    1. 引言网络通信的本质仍然是进程间通信。几个月前,我们在学习进程间通信的时候(共享内存、管道、以及用于同步的信号量),并没有提到过网络 IPC,那时候是因为基础不太够。另一方面,之前讲的进程间通信,...

    2017-03-30 17:39
    810
  • 131-安装“插座”

    实际上,这一节的标题应该叫《创建套接字》,如果搞个这样的标题,未免也太学术了,不直观,还容易被群殴。在上一讲中,我们只讲了“插座”它有一个地址叫“插座地址”,即套接字地址,可是我们一直没说清楚在进程中...

    2017-03-30 18:50
    503
  • 132-发起连接请求

    如果有一个进程将插座(socket)与套接字地址进行了绑定,同时将套接字地址进行了公开,就意味着,其它网络中的计算机可以去连接它。如果想连接到这个公开了套接字地址的进程,可以使用函数 connect....

    2017-03-31 13:23
    507
  • 133-接受连接

    1. 被动 socket 与 主动 socket前面几讲以来,一直未提到这个概念。实际上,使用 socket 函数创建的套接字(插座)默认情况下就是主动 socket。主动 socket,是指未来你将...

    2017-03-31 14:52
    563
  • 134-开始通信

    这恐怕是大家最关心的问题了。在上一文中,接受连接也完成了三次握手的过程,但是我们却不知道如何让两个进程互相发送数据。实际上我们知道,对于服务器进程来说,三次握手建立完成后的连接,仍然在未决连接队列中,...

    2017-03-31 15:38
    629
  • 135-大写转换服务器

    相信你已经基本掌握了最最最简单的基于 TCP 连接的服务器编程技术了。本文算打算完成一个小型服务器,该服务器接受客户端发送过来的数据,然后将数据中的字母转换成大写后再发送给客户端。1. read 和 ...

    2017-03-31 19:14
    852
  • 137-基本的网络编程总结

    网络编程远远不止前面所提到的那些内容。在 Linux 编程中,只是非常简单的介绍了下基本的 socket 编程。如果要讲完整个网络编程,需要整整一本书的内容。但是,前面的文章提到的一些基础概念也是相当...

    2017-04-03 16:32
    509
  • 125-POSIX 异步IO(取消操作)

    有时候,我们在请求异步 IO 后又后悔了,怎么办?POSIX 提供了一个取消函数 aio_cancel 来帮我们取消异步 IO 请求。1. aio_cancel(1) 函数原型int aio_canc...

    2017-03-29 13:11
    491
  • 126-POSIX 异步IO(批量请求)

    POSIX 提供了函数 lio_listio 可以让我们一次性发起多个异步 IO 请求。1. lio_listio(1) 函数原型int lio_listio(int mode, struct aio...

    2017-03-29 14:32
    472
  • 127-POSIX 异步IO(异步通知)

    到这里,终于可以采用异步的方式进行通知我们的程序异步操作完成了,在前面我们一直使用很笨很笨的方式,使用 while 循环和 aio_error 函数不断的去测试异步操作有没有完成。1. aiocb 的...

    2017-03-29 15:35
    554
  • 1-gcc 选项

    gcc 常用选项 -v :查看gcc版本号 -I:注意这是大写的 i,指定头文件目录,注意-I和目录之间没有空格 -c :只编译,生成.o文件,不进行链接 -g :包含调试信息...

    2016-09-15 14:53
    1276
  • 2-静态库的创建与使用

    生成静态库的指令 ar 示例 一个完整的生成 a 文件的例子 编写源码 生成 o 文件 打包 使用静态库 客户端测试代码 编译链接成最终的可执行文件生成静态库的指令 ar 常用选项 选 项 说 ...

    2016-09-15 16:29
    1252
  • 3-共享库的创建与应用

    要用到的文件 生成动态库的命令 使用动态库 -fpic 选项要用到的文件文件树如下 . |-bin |-lib |-src |-add.c |-common.h ...

    2016-09-15 19:44
    802
  • 4-文件IO-从printf开始

    本着从使用中学习原则,我不打算讲太多的细节,也不想讲太多有关内核的知识。但是适当的了解一点内核,对学习 linux 编程会非常有帮助。printf 在干什么学过C语言的朋友第一天学习的函数恐怕就是 p...

    2016-09-17 11:36
    977
  • 5-文件IO-read/write/open

    代码 函数 open open 函数的用法 flag 选项示例 函数 read 函数 write 完整代码 小结本着在使用中学习的原则,现在提出一个需求,只使用 linux 系统接口来实现文件拷贝命令...

    2016-09-17 15:17
    856
  • 6-文件IO-文件描述符与lseek

    在讲 lseek 前,先讲讲上一节文件描述符这个遗留的问题。1. 文件描述符在上一节中,我们已经知道 open 函数返回一个整数,它在本进程中唯一的标识了一个文件。那么,它到底是怎样标识的呢?可以设想...

    2016-09-17 20:04
    771
img博客搬家
img撰写博客
img发布 Chat
img专家申请
img意见反馈
img返回顶部