Linux系统编程
文章平均质量分 71
Linux系统编程学习与总结
ppingfann
这个作者很懒,什么都没留下…
展开
-
查看联机帮助与who命令的实现
查看联机帮助与who命令的实现一、背景通过对who命令的系统编程来学会查看联机帮助,学习使用联机帮助来查找到有用的信息。并且学习linux的文件操作。二、实现过程1、了解who命令的作用 我这里登陆了三个用户root,pf,pf2。可以看到who命令的作用:第一列是用户名的名称,第二列是终端的名称,第三列是登陆的时间(这里没有用时间戳的形式),第四列是用户登录的IP地原创 2016-06-22 19:03:47 · 821 阅读 · 0 评论 -
连接到远端的进程(socket)
一、背景之前我讲到管道,管道是一种很便捷的进程间通信方式,使得进程之间传输数据就像给文件传输数据一样,但是管道也有其局限性,一方面它只能在相关的进程间使用,另一方面它只能连接同一台主机上的进程。所以我在这里讨论另一种进程间通信方式:socket。同时我会编写一个简单的时间服务器与对应的客户端来理解运作机理。二、socketsocket的英文原义是“插座”,通常也称作“套接字”。用于原创 2016-11-30 11:16:31 · 548 阅读 · 0 评论 -
线程机制:并发函数的使用
一、背景 之前学习过进程的概念,而计算机是不可能只单单运行一个进程的。我们使用fork与exec等系统调用来使进程并发执行。然而对于一个进程而言,该进程一定是有多个函数的,那么这些函数是否可以并发执行呢?当然是可以的,这一机制就叫做线程机制。二、一个单线程程序#include#include#define NUM 5int main(){ void pr原创 2016-10-19 09:24:34 · 1310 阅读 · 0 评论 -
连接到近端的进程:linux中的计算器bc
一、背景 初次接触服务器与客户端的知识,先从最简单的做起:了解linux中使用的计算器。linux中使用的计算器是最为简单的服务器与客户端协同工作的例子。二、从管道到服务器与客户端 之前详细的解释过管道的工作原理,但传统的Unix管道只是单方向的传送数据。打个比方,在linux命令行下使用cat /etc/passwd | grep Jack命令。这个命令将cat的输出结果原创 2016-11-10 10:47:03 · 570 阅读 · 1 评论 -
一个简单的字符驱动程序
一、背景 为了了解设备驱动程序的框架,在此编写一个简单的字符驱动程序,以此来对驱动程序的框架进行一个简单的了解。二、设备驱动程序 所谓设备驱动程序,其实就是计算机硬件与外部设备进行通信的接口。由于硬件设备各式各样,有了设备驱动程序,应用程序就可以不用在意设备的具体细节,而方便的与外部设备进行通信。从外部设备读取数据,或是将数据写入外部设备,即对设备进行控制。三、设备驱动原创 2016-11-06 10:53:16 · 3443 阅读 · 1 评论 -
linux重定向与管道
linux重定向与管道一、背景在linux中,我们经常会用到重定向符号“>”,“”,前者是输出重定向符号,后者是输入重定向符号。如使用who > userlist来将登陆在此系统的用户输出到userlist文件中。那么为什么who的输出结果不是显示在屏幕上而是写入到了userlist这个文件中呢?这就是linux的重定向。再者,大家也都用过管道符号“|”,如使用more /etc/原创 2016-09-24 21:32:34 · 2210 阅读 · 0 评论 -
ATM机密码输入界面的编写(终端连接属性)
一、背景上一篇文章中我讨论了终端连接的属性,包括如何设置终端连接的属性以及如何编写终端属性修改命令stty。但并没有进行实践。这篇文章中将进行终端控制的应用实践。自己编写一个简单的ATM机密码输入界面。二、密码输入界面的问题与解决(代码在文末)1.初始版 这个密码输入界面一开始会先弹出一个欢迎的话语,然后要求客户输入密码,这里我设置的密码是123456,如果输入错误,则会显示提原创 2016-08-03 15:43:07 · 2998 阅读 · 0 评论 -
终端连接控制(stty的编写)
终端连接控制(stty的编写)一、背景文件与目录在之前已经学习过了。文件中包含着数据,这些数据可以被读出、写入,也可以用以操作。但文件不仅仅是计算机唯一的数据来源,计算机的数据还可以来自于许多的外部设备,比如扫描仪、照相机、鼠标等输入设备,还有扬声器、打印机等输出设备。总之数据来源多种多样,并不仅局限于文件。那么这些外部设备的连接是怎么样的呢,其与进程协同工作时的方式(属性)如何来修改呢。原创 2016-07-29 10:42:28 · 2145 阅读 · 0 评论 -
目录与文件属性(ls的编写)
目录与文件属性(编写ls)一、背景ls可以说是linux命令中最常用的了,它可以显示一个目录中的文件内容。并且ls有许许多多的纷繁复杂的选项。其中-a,-l,-d是经常会见到的。-a选项可以来查看目录当中的隐藏文件,而-l可以用来查看文件的详细信息,再加上个-d可以查看该目录的详细信息。这个如此之常用的命令是如何实现的呢,下面就“分门别类”的一步一步来分析一下。二、分类叙述实现过程原创 2016-06-22 19:05:45 · 825 阅读 · 0 评论 -
写文件与错误处理
写文件与错误处理一、背景上一篇总结探究了who的实现过程。学会了使用联机帮助来为自己披荆斩棘、解决问题。who命令从utmp结构中读出数据并且通过标准输出方式输出。而并未往文件中写数据。这一篇总结将会讨论之。另外将讨论linux系统调用的错误处理方式。二、写文件1.查找写文件的系统调用写文件的系统调用当然可以直接从书中查找到是write。但运用联机帮助的知识也很容易的查找到。首原创 2016-06-22 19:05:01 · 714 阅读 · 0 评论 -
初次接触linux系统编程
初次接触linux系统编程一、背景第一次接触linux系统编程,先从最简单的做起,首先探索一下more命令的实现方法。more命令使用起来并不复杂,先在命令行中输入more,会得到下面的反馈信息。即more的使用方法是more+选项+名称。我在这里先忽略掉选项,只实现more来分页查看文件内容。(只是more最简单的查看文件内容的功能)二、实现过程1.more的运作方式原创 2016-06-22 18:59:04 · 437 阅读 · 0 评论 -
linux文件系统(pwd的编写)
文件系统(编写pwd)一、背景在linux系统中数据都是包含在文件中的。那么文件的本质是什么?在linux系统内部文件是如何进行管理的。为了深入了解linux系统,一定有必要了解其文件系统。二、文件系统1.从用户角度来看从用户角度来看文件系统是十分直观且易于理解与使用的。从用户角度来看,文件系统中有文件与目录。目录中包含着文件与子目录,而文件中包含着数据内容。想进入某个原创 2016-07-05 09:02:36 · 631 阅读 · 0 评论 -
linux进程控制
Linux进程控制(编写命令解释器)一、背景之前在《计算机操作系统》这本书中已经多次接触了进程这一概念,而进程在操作系统中具体是做什么的呢?却没有实际的与进程发生过互动,因此也就没有实际的感受。对于我来说进程仅仅停留在概念的层面上:进程是程序运行时的内存空间和设置或者说进程就是程序的进行时。没有过实践可不好办,于是就打算进一步的理解进程,为进一步理解进程,就需要对进程进行控制。当然,这个报原创 2016-07-23 16:39:10 · 479 阅读 · 0 评论 -
编写简单的WEB服务器
一、背景 我们都知道使用浏览器访问网址的方法,将网址输入进地址框中就会显示出相应的文字、图片、视频等信息。实际上基于socket的客户/服务器原理是相似的,虽然可能承载信息的载体不同,但其背后的原理是基本一致的。通过理解这些原理(关于socket,我上一篇博客分析过),我们就可以编写一个简单的WEB服务器并做检测。二、基本步骤 实际上基于socket的客户/服务器系统的步骤原创 2017-02-16 09:46:45 · 4112 阅读 · 0 评论