当前位置:首页 > 操作系统 >
《Linux程序设计》电子书封面

Linux程序设计

  • 发布时间:2020年08月03日 15:52:11
  • 作者:Neil Matthew Richar
  • 大小:221.6 MB
  • 类别:Linux电子书
  • 格式:PDF
  • 版本:清晰第4版
  • 评分:8.8

    Linux程序设计 PDF 清晰第4版

      给大家带来的一篇关于Linux相关的电子书资源,介绍了关于Linux、程序设计方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小221.6 MB,Neil Matthew Richar编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:9.4。

      内容介绍

      这书叙述了Linux系统软件以及他UNIX设计风格的电脑操作系统上的软件开发,主题思想包含规范Linux c语言函数库和由不一样的Linux或UNIX规范特定的各种各样小工具的使用说明,大部分规范Linux开发环境的使用说明,根据DBM和MySQL数据库储存Linux中的统计数据,为X窗口系统软件创建图形界面操作界面等。这书根据先详细介绍编程设计基础理论,再用适度的事例和清楚的表述来表明它的方法,协助用户快速把握有关的专业知识。

      这书合适Linux的新手及期待运用Linux开展开发设计的程序流程工作人员阅读文章,也合适做为高等学校计算机相关技术专业老师学生的参照教材内容。

      Neil Matthew 和RichardStones全球著名的Linux/UNIX权威专家,有数十载Linux/UNIX开发设计工作经验和从事亲身经历。她们应用过基本上全部UNIX版本号,并熟练C/C++、LISP、Fortran、Perl、Tcl和Prolog等各种各样語言。她们从业过各种各样软件项目,从即时嵌入式系统到财务会计系统软件和零售业信息管理系统。除这书外,她们还合著了PostgreSQL、MySQL层面的书籍。

      目录

      • 第1章 入门 1
      • 1.1 UNIX、Linux和GNU简介 1
      • 1.1.1 什么是UNIX 1
      • 1.1.2 什么是Linux 2
      • 1.1.3 GNU项目和自由软件基金会 3
      • 1.1.4 Linux发行版 3
      • 1.2 Linux程序设计 4
      • 1.2.1 Linux程序 4
      • 1.2.2 文本编辑器 5
      • 1.2.3 C语言编译器 5
      • 1.2.4 开发系统导引 7
      • 1.3 获得帮助 12
      • 1.4 小结 14
      • 第2章 shell程序设计 15
      • 2.1 为什么使用shell编程 15
      • 2.2 一点哲学 16
      • 2.3 什么是shell 16
      • 2.4 管道和重定向 18
      • 2.4.1 重定向输出 18
      • 2.4.2 重定向输入 19
      • 2.4.3 管道 19
      • 2.5 作为程序设计语言的shell 20
      • 2.5.1 交互式程序 20
      • 2.5.2 创建脚本 21
      • 2.5.3 把脚本设置为可执行 22
      • 2.6 shell的语法 23
      • 2.6.1 变量 23
      • 2.6.2 条件 27
      • 2.6.3 控制结构 29
      • 2.6.4 函数 39
      • 2.6.5 命令 42
      • 2.6.6 命令的执行 58
      • 2.6.7 here文档 61
      • 2.6.8 调试脚本程序 63
      • 2.7 迈向图形化:dialog工具 63
      • 2.8 综合应用 68
      • 2.8.1 需求 68
      • 2.8.2 设计 68
      • 2.8.3 应用程序的说明 76
      • 2.9 小结 77
      • 第3章 文件操作 78
      • 3.1 Linux文件结构 78
      • 3.1.1 目录 79
      • 3.1.2 文件和设备 79
      • 3.2 系统调用和设备驱动程序 80
      • 3.3 库函数 81
      • 3.4 底层文件访问 82
      • 3.4.1 write系统调用 82
      • 3.4.2 read系统调用 83
      • 3.4.3 open系统调用 84
      • 3.4.4 访问权限的初始值 85
      • 3.4.5 其他与文件管理有关的系统调用 88
      • 3.5 标准I/O库 91
      • 3.5.1 fopen函数 91
      • 3.5.2 fread函数 92
      • 3.5.3 fwrite函数 92
      • 3.5.4 fclose函数 92
      • 3.5.5 fflush函数 93
      • 3.5.6 fseek函数 93
      • 3.5.7 fgetc、getc和getchar函数 93
      • 3.5.8 fputc、putc和putchar函数 94
      • 3.5.9 fgets和gets函数 94
      • 3.6 格式化输入和输出 94
      • 3.6.1 printf、fprintf和sprintf函数 94
      • 3.6.2 scanf、fscanf和sscanf函数 96
      • 3.6.3 其他流函数 98
      • 3.6.4 文件流错误 99
      • 3.6.5 文件流和文件描述符 99
      • 3.7 文件和目录的维护 100
      • 3.7.1 chmod系统调用 100
      • 3.7.2 chown系统调用 100
      • 3.7.3 unlink、link和symlink系统调用 100
      • 3.7.4 mkdir和rmdir系统调用 101
      • 3.7.5 chdir系统调用和getcwd函数 101
      • 3.8 扫描目录 102
      • 3.8.1 opendir函数 102
      • 3.8.2 readdir函数 102
      • 3.8.3 telldir函数 103
      • 3.8.4 seekdir函数 103
      • 3.8.5 closedir函数 103
      • 3.9 错误处理 106
      • 3.9.1 strerror函数 106
      • 3.9.2 perror函数 106
      • 3.10 /proc文件系统 107
      • 3.11 高级主题:fcntl和mmap 110
      • 3.11.1 fcntl系统调用 110
      • 3.11.2 mmap函数 111
      • 3.12 小结 113
      • 第4章 Linux环境 114
      • 4.1 程序参数 114
      • 4.1.1 getopt 116
      • 4.1.2 getopt_long 118
      • 4.2 环境变量 120
      • 4.2.1 环境变量的用途 122
      • 4.2.2 environ变量 122
      • 4.3 时间和日期 123
      • 4.4 临时文件 129
      • 4.5 用户信息 131
      • 4.6 主机信息 134
      • 4.7 日志 135
      • 4.8 资源和限制 139
      • 4.9 小结 143
      • 第5章 终端 144
      • 5.1 对终端进行读写 144
      • 5.2 与终端进行对话 149
      • 5.3 终端驱动程序和通用终端接口 151
      • 5.3.1 概述 151
      • 5.3.2 硬件模型 151
      • 5.4 termios结构 152
      • 5.4.1 输入模式 153
      • 5.4.2 输出模式 154
      • 5.4.3 控制模式 155
      • 5.4.4 本地模式 155
      • 5.4.5 特殊控制字符 155
      • 5.4.6 终端速度 158
      • 5.4.7 其他函数 159
      • 5.5 终端的输出 162
      • 5.5.1 终端的类型 163
      • 5.5.2 识别终端类型 163
      • 5.5.3 使用terminfo功能标志 165
      • 5.6 检测击键动作 170
      • 5.7 虚拟控制台 172
      • 5.8 伪终端 173
      • 5.9 小结 174
      • 第6章 使用curses函数库管理基于文本的屏幕 175
      • 6.1 用curses函数库进行编译 175
      • 6.2 curses术语和概念 176
      • 6.3 屏幕 178
      • 6.3.1 输出到屏幕 179
      • 6.3.2 从屏幕读取 180
      • 6.3.3 清除屏幕 180
      • 6.3.4 移动光标 180
      • 6.3.5 字符属性 181
      • 6.4 键盘 183
      • 6.4.1 键盘模式 183
      • 6.4.2 键盘输入 184
      • 6.5 窗口 185
      • 6.5.1 WINDOW结构 185
      • 6.5.2 通用函数 186
      • 6.5.3 移动和更新窗口 187
      • 6.5.4 优化屏幕刷新 190
      • 6.6 子窗口 191
      • 6.7 keypad模式 193
      • 6.8 彩色显示 195
      • 6.9 pad 198
      • 6.10 CD唱片应用程序 200
      • 6.10.1 新CD唱片应用程序的开始部分 200
      • 6.10.2 main函数 202
      • 6.10.3 建立菜单 203
      • 6.10.4 操作数据库文件 204
      • 6.10.5 查询CD数据库 209
      • 6.11 小结 213
      • 第7章 数据管理 214
      • 7.1 内存管理 214
      • 7.1.1 简单的内存分配 214
      • 7.1.2 分配大量的内存 215
      • 7.1.3 滥用内存 218
      • 7.1.4 空指针 219
      • 7.1.5 释放内存 220
      • 7.1.6 其他内存分配函数 221
      • 7.2 文件锁定 222
      • 7.2.1 创建锁文件 222
      • 7.2.2 区域锁定 225
      • 7.2.3 锁定状态下的读写操作 227
      • 7.2.4 文件锁的竞争 232
      • 7.2.5 其他锁命令 236
      • 7.2.6 死锁 236
      • 7.3 数据库 237
      • 7.3.1 dbm数据库 237
      • 7.3.2 dbm例程 238
      • 7.3.3 dbm访问函数 239
      • 7.3.4 其他dbm函数 242
      • 7.4 CD唱片应用程序 244
      • 7.4.1 更新设计 244
      • 7.4.2 使用dbm数据库的CD唱片应用程序 245
      • 7.5 小结 262
      • 第8章 MySQL 263
      • 8.1 安装 263
      • 8.1.1 MySQL软件包 264
      • 8.1.2 安装后的配置 266
      • 8.1.3 安装后的故障修复 270
      • 8.2 MySQL管理 270
      • 8.2.1 命令 270
      • 8.2.2 创建用户并赋予权限 274
      • 8.2.3 密码 276
      • 8.2.4 创建数据库 276
      • 8.2.5 数据类型 277
      • 8.2.6 创建表 278
      • 8.2.7 图形化工具 280
      • 8.3 使用C语言访问MySQL数据 283
      • 8.3.1 连接例程 283
      • 8.3.2 错误处理 287
      • 8.3.3 执行SQL语句 288
      • 8.3.4 更多的函数 301
      • 8.4 CD数据库应用程序 301
      • 8.4.1 创建表 302
      • 8.4.2 添加数据 304
      • 8.4.3 使用C语言访问数据 306
      • 8.5 小结 316
      • 第9章 开发工具 317
      • 9.1 多个源文件带来的问题 317
      • 9.2 make命令和makefile文件 318
      • 9.2.1 makefile的语法 318
      • 9.2.2 make命令的选项和参数 318
      • 9.2.3 makefile文件中的注释 321
      • 9.2.4 makefile文件中的宏 321
      • 9.2.5 多个目标 323
      • 9.2.6 内置规则 325
      • 9.2.7 后缀和模式规则 326
      • 9.2.8 用make管理函数库 327
      • 9.2.9 高级主题:makefile文件和子目录 329
      • 9.2.10 GNU make和gcc 329
      • 9.3 源代码控制 330
      • 9.3.1 RCS 331
      • 9.3.2 SCCS 336
      • 9.3.3 RCS和SCCS的比较 336
      • 9.3.4 CVS 337
      • 9.3.5 CVS的前端程序 340
      • 9.3.6 Subversion 341
      • 9.4 编写手册页 342
      • 9.5 发行软件 345
      • 9.5.1 patch程序 345
      • 9.5.2 其他软件发行工具 347
      • 9.6 RPM软件包 349
      • 9.6.1 使用RPM软件包文件 349
      • 9.6.2 安装RPM软件包 350
      • 9.6.3 创建RPM软件包 350
      • 9.7 其他软件包格式 358
      • 9.8 开发环境 358
      • 9.8.1 KDevelop 358
      • 9.8.2 其他开发环境 360
      • 9.9 小结 360
      • 第10章 调试 361
      • 10.1 错误类型 361
      • 10.2 常用调试技巧 362
      • 10.2.1 有漏洞的程序 362
      • 10.2.2 代码检查 364
      • 10.2.3 取样法 365
      • 10.2.4 程序的受控执行 367
      • 10.3 使用gdb进行调试 368
      • 10.3.1 启动gdb 368
      • 10.3.2 运行一个程序 369
      • 10.3.3 栈跟踪 369
      • 10.3.4 检查变量 370
      • 10.3.5 列出程序源代码 370
      • 10.3.6 设置断点 371
      • 10.3.7 用调试器打补丁 374
      • 10.3.8 深入学习gdb 375
      • 10.4 其他调试工具 375
      • 10.4.1 lint:清理程序中的“垃圾” 376
      • 10.4.2 函数调用工具 378
      • 10.4.3 用prof/gprof产生执行存档 380
      • 10.5 断言 381
      • 10.6 内存调试 383
      • 10.6.1 ElectricFence函数库 383
      • 10.6.2 valgrind 384
      • 10.7 小结 387
      • 第11章 进程和信号 388
      • 11.1 什么是进程 388
      • 11.2 进程的结构 388
      • 11.2.1 进程表 390
      • 11.2.2 查看进程 390
      • 11.2.3 系统进程 391
      • 11.2.4 进程调度 393
      • 11.3 启动新进程 394
      • 11.3.1 等待一个进程 399
      • 11.3.2 僵尸进程 401
      • 11.3.3 输入和输出重定向 403
      • 11.3.4 线程 404
      • 11.4 信号 404
      • 11.4.1 发送信号 408
      • 11.4.2 信号集 412
      • 11.5 小结 415
      • 第12章 POSIX线程 416
      • 12.1 什么是线程 416
      • 12.2 线程的优点和缺点 417
      • 12.3 第一个线程程序 418
      • 12.4 同时执行 421
      • 12.5 同步 423
      • 12.5.1 用信号量进行同步 423
      • 12.5.2 用互斥量进行同步 427
      • 12.6 线程的属性 431
      • 12.7 取消一个线程 435
      • 12.8 多线程 438
      • 12.9 小结 442
      • 第13章 进程间通信:管道 443
      • 13.1 什么是管道 443
      • 13.2 进程管道 444
      • 13.3 将输出送往popen 445
      • 13.3.1 传递更多的数据 446
      • 13.3.2 如何实现popen 447
      • 13.4 pipe调用 449
      • 13.5 父进程和子进程 451
      • 13.5.1 管道关闭后的读操作 453
      • 13.5.2 把管道用作标准输入和标准输出 454
      • 13.6 命名管道:FIFO 456
      • 13.6.1 访问FIFO文件 458
      • 13.6.2 高级主题:使用FIFO的客户/服务器应用程序 464
      • 13.7 CD数据库应用程序 468
      • 13.7.1 目标 469
      • 13.7.2 实现 469
      • 13.7.3 客户接口函数 472
      • 13.7.4 服务器接口server.c 478
      • 13.7.5 管道 481
      • 13.7.6 对CD数据库应用程序的总结 487
      • 13.8 小结 487
      • 第14章 信号量、共享内存和消息队列 488
      • 14.1 信号量 488
      • 14.1.1 信号量的定义 489
      • 14.1.2 一个理论性的例子 489
      • 14.1.3 Linux的信号量机制 490
      • 14.1.4 使用信号量 492
      • 14.2 共享内存 496
      • 14.2.1 shmget函数 497
      • 14.2.2 shmat函数 497
      • 14.2.3 shmdt 498
      • 14.2.4 shmctl 498
      • 14.3 消息队列 502
      • 14.3.1 msgget函数 502
      • 14.3.2 msgsnd函数 503
      • 14.3.3 msgrcv函数 503
      • 14.3.4 msgctl函数 504
      • 14.4 CD数据库应用程序 507
      • 14.4.1 修改服务器函数 507
      • 14.4.2 修改客户函数 509
      • 14.5 IPC状态命令 511
      • 14.5.1 显示信号量状态 511
      • 14.5.2 显示共享内存状态 511
      • 14.5.3 显示消息队列状态 511
      • 14.6 小结 512
      • 第15章 套接字 513
      • 15.1 什么是套接字 513
      • 15.2 套接字连接 513
      • 15.2.1 套接字属性 517
      • 15.2.2 创建套接字 519
      • 15.2.3 套接字地址 520
      • 15.2.4 命名套接字 520
      • 15.2.5 创建套接字队列 521
      • 15.2.6 接受连接 521
      • 15.2.7 请求连接 522
      • 15.2.8 关闭套接字 523
      • 15.2.9 套接字通信 523
      • 15.2.10 主机字节序和网络字节序 525
      • 15.3 网络信息 527
      • 15.3.1 因特网守护进程(xinetd/inetd) 531
      • 15.3.2 套接字选项 533
      • 15.4 多客户 534
      • 15.4.1 select系统调用 537
      • 15.4.2 多客户 540
      • 15.5 数据报 543
      • 15.6 小结 545
      • 第16章 用GTK+进行GNOME编程 546
      • 16.1 X视窗系统简介 546
      • 16.1.1 X服务器 547
      • 16.1.2 X客户端 547
      • 16.1.3 X协议 547
      • 16.1.4 Xlib库 547
      • 16.1.5 X工具包 547
      • 16.1.6 窗口管理器 548
      • 16.1.7 创建GUI的其他方法——平台无关的窗囗API 548
      • 16.2 GTK+简介 549
      • 16.2.1 GLib类型系统 549
      • 16.2.2 GTK+对象系统 550
      • 16.2.3 GNOME简介 550
      • 16.2.4 安装GNOME/GTK+开发库 551
      • 16.3 事件、信号和回调函数 554
      • 16.4 组装盒构件 556
      • 16.5 GTK+构件 559
      • 16.5.1 GtkWindow 559
      • 16.5.2 GtkEntry 560
      • 16.5.3 GtkSpinButton 563
      • 16.5.4 GtkButton 565
      • 16.5.5 GtkTreeView 568
      • 16.6 GNOME构件 571
      • 16.7 GNOME菜单 572
      • 16.8 对话框 576
      • 16.8.1 GtkDialog 577
      • 16.8.2 模式对话框 578
      • 16.8.3 非模式对话框 579
      • 16.8.4 GtkMessageDialog 580
      • 16.9 CD数据库应用程序 581
      • 16.10 小结 592
      • 第17章 用Qt进行KDE编程 593
      • 17.1 KDE和Qt简介 593
      • 17.2 安装Qt 594
      • 17.3 信号和槽 596
      • 17.4 Qt构件 602
      • 17.4.1 QLineEdit 602
      • 17.4.2 Qt按钮 605
      • 17.4.3 QComboBox 609
      • 17.4.4 QListView 613
      • 17.5 对话框 615
      • 17.5.1 QDialog 615
      • 17.5.2 QMessageBox 617
      • 17.5.3 QInputDialog 618
      • 17.5.4 使用qmake简化makefile文件的编写 620
      • 17.6 KDE的菜单和工具栏 620
      • 17.7 使用KDE/Qt编写CD数据库应用程序 624
      • 17.7.1 主窗口 624
      • 17.7.2 AddCdDialog 627
      • 17.7.3 LogonDialog 629
      • 17.7.4 main.cpp 630
      • 17.8 小结 632
      • 第18章 Linux标准 633
      • 18.1 C编程语言 634
      • 18.1.1 发展历史简介 634
      • 18.1.2 GNU编译器集 634
      • 18.1.3 gcc选项 635
      • 18.2 接口和LSB 636
      • 18.2.1 LSB标准函数库 637
      • 18.2.2 LSB用户和组 638
      • 18.2.3 LSB系统初始化 638
      • 18.3 文件系统层次结构标准 639
      • 18.4 更多标准 642
      • 18.5 小结 642

      学习笔记

      java程序员必须要学会的linux命令总结(推荐)

      1.查找文件 find / -name filename.txt 根据名称查找/目录下的filename.txt文件。 find . -name “*.xml” 递归查找所有的xml文件 2.查看一个程序是否运行 ps –ef|grep tomcat 查看所有有关tomcat的进程 3.终止线程 kill -9 19979 终止线程号位19979的进程 pkill -9 java 批量终止java进程 4.查看文件,包含隐藏文件 ls -al 5.当前工作目录 pwd 6.复制文件 cp source dest 复制文件 cp -r sourceFolder targetFolder 递归复制整个文件夹 scp sourecFile romoteUserName@remoteIp:remoteAddr 远程拷贝 7.创建目录 mkdir newfolder 创建文件:touch test.txt 8.删除目录 rmdir deleteEmptyFolder 删除空目录 rm -rf deleteFile 递归删除目录中所有内容 9.移动文件 mv /temp/movefile /targetFolder 10.重命令 m……

      pyqt远程批量执行Linux命令程序的方法

      写了个小程序: 功能 1.测试远程ssh连接是否成功, 2.批量执行远程ssh命令 效果如下: 代码如下: #-*- coding:utf-8 -*-import sysfrom PyQt4 import QtCore, QtGui, uicimport localeimport reimport osfrom PyQt4.QtCore import *from PyQt4.QtGui import *import paramikoqtCreatorFile = "test.ui" # Enter file here. Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)a = 0username_list = []ip_list = []password_list = []class MyApp(QtGui.QMainWindow, Ui_MainWindow): def __init__(self): QtGui.QMainWindow.__init__(self) Ui_MainWindow.__init__(self) self.setupUi(self) self.add.clicked.connect(self.add_info) self.test.clicked.connect(self.test_link) self.do_2.clicked.connect(self.do_command) def add_info(self): global a ip = self.ip.text() ip_list.append(ip) username ……

      以上就是本次介绍的Linux电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

      上一篇:蜕变:从菜鸟到Linux安全专家

      下一篇:白话大数据与机器学习

      展开 +

      收起 -

      下载地址:百度网盘下载
      读者留言
      陆越泽

      陆越泽 提供上传

      资源
      29
      粉丝
      20
      喜欢
      73
      评论
      11

      Copyright 2018-2020 www.xz577.com 码农之家

      版权投诉 / 书籍推广 / 赞助:520161757@qq.com