UNIX/Linux
thinkerleo7798
这个作者很懒,什么都没留下…
展开
-
廖雪峰python学习笔记14.多进程和多线程
# -*- coding :utf-8 -*-#多进程#Python中的多进程和c语言中比较相似,都是以调用fork()函数展开的#fork()函数:子进程永远返回0,而父进程返回子进程的ID#进程调用getpid()函数进程的ID#子进程调用getppid()得到父进程的IDimport osprint('Processing (%s) start...'原创 2016-07-14 10:49:16 · 1193 阅读 · 0 评论 -
linux中几种查找文件方式的比较
方法一: whereis 命令whereis命令快捷方便,但是仅仅限于二进制文件。方法二: locate命令locate命令查找快而全面,它通过通过"/var/lib/mlocate/mlocate.db"数据库查找,但是此数据库每天更新一次,可能有些当时的文件查不到。需要更新数据库,命令:updatedb,如果想只统计数目可以加上-c参数,-i参数可以忽略大小写进行查找,wherei原创 2016-10-20 23:24:45 · 468 阅读 · 0 评论 -
Linux之日志系统
Linux之日志系统实验介绍日志数据可以是有价值的信息宝库,也可以是毫无价值的数据泥潭。它可以记录下系统所产生的所有行为,并按照某种规范表达出来。我们可以使用日志系统所记录的信息为系统进行排错,优化系统的性能,或者根据这些信息调整系统的行为。收集你想要的数据,分析出有价值的信息,可以提高系统、产品的安全性,可以帮助开发完善代码,优化产品。日志会成为在事故发生后查明“发生了什么”的一转载 2016-10-21 00:17:05 · 1421 阅读 · 0 评论 -
SICP 2.59 集合的合并union_set
现在有两个集合set1 和 set2, 需要将这两个集合合并成一个集合。 思路很简单: 顺序查找set1中的元素set2是否包含,是,则找下一个,否,加入到set2。 最后返回set2scheme 实现:(define (union_set set1 set2) (if (null? set1) set2 (union_set (cdr set1) (a原创 2017-01-26 15:46:25 · 386 阅读 · 0 评论 -
Emacs 快速入门指南
Emacs 快速指南.(查看版权声明请至本文末尾)【注意:位于【】之间的内容是译注,比如本行,下同。】Emacs 键盘命令通常包含 CONTROL 键(有时候以 CTRL 或 CTL 来标示)和 META 键(有时候用 EDIT 或 ALT 来标示)。为了避免每次都要写出全名,我们 约定使用下述缩写:C- 表示当输入字符 时按住 CONTROL 键。 因此 C-f 就表转载 2017-02-17 23:55:10 · 775 阅读 · 0 评论 -
在Linux下搭建51单片机的开发烧写环境
在Linux下搭建51单片机的开发烧写环境原创 2016-11-13 01:09:02 · 18818 阅读 · 6 评论 -
Linux C: 基于C/S的多线程网络编程 (服务器充当一个客户端的两点传输)
基于C/S的多线程网络编程原创 2016-07-07 00:29:59 · 1267 阅读 · 0 评论 -
《Unix网络编程》 多进程并发服务器基本模型
多进程并发服务器的基本原理是:对于每一个客户的访问请求,都fork一个子进程来处理这个请求。程序轮廓:pid_t pid;int listenfd, connfd;listenfd = Socket(...);Bind(listenfd, LISTENQ);while(1){ connfd = Accept(listenfd, ...); if( (pid = fork原创 2017-07-18 13:52:30 · 425 阅读 · 0 评论 -
《Unix网络编程》Unix/Linux中exec系函数辨析
Unix/Linux中exec系函数辨析原创 2017-07-18 12:35:43 · 263 阅读 · 0 评论 -
《UNIX网络编程》多线程TCP C/S服务器正常启动和正常结束过程剖析
一、启动过程1、服务器启动后,它调用socket、bind、listen、accept, 并阻塞accept调用(我们还没有启动客户) 2、客户启动并调用socket和connect,后者引起TCP三路握手过程。当三路握手完成后,客户中的connect和服务器中的的accept均返回,连接建立。二、结束过程1、服务器子进程终止,关闭所有打开的描述符,客户打开的套接字由内核关闭。这导致客户TCP发送原创 2017-07-24 19:50:49 · 493 阅读 · 0 评论 -
《UNIX网络编程》wait和waitpid函数
之前的内容里我们用wait来处理已经终止的子进程,waitpid的功能和wait类似,但也有区别。 wait和waitpid的函数模型:pid_t wait(int *statloc);pid_t waitpid(pid_t pid, int *statloc, int options);返回值:若成功则返回进程的ID, 出错则返回0或者-1相同点函数wait和waitpid均返回两个值,已经终原创 2017-07-26 22:24:41 · 488 阅读 · 0 评论 -
Linux 中的 /dev/null 和 /dev/zero 设备
Linux 中的 /dev/null 和 /dev/zero 设备原创 2016-10-27 15:00:38 · 1023 阅读 · 0 评论 -
Linux启动过程步骤详解
转载自:http://blog.chinaunix.net/uid-26495963-id-3066282.html启动第一步--加载BIOS当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它。这是因为BIOS中包含了CPU的相关信息、设备启动顺序信息、硬盘信息、内存信息、时钟信息、PnP特性等等。在此之后,计算机心里就有谱转载 2016-10-27 15:07:21 · 285 阅读 · 1 评论 -
网络文件系统nfs文件系统使用
转自:http://www.cnblogs.com/yc_sunniwell/archive/2010/06/30/1768474.html一、NFS简介1、NFS就是Network FileSystem的缩写,它的最大功能就是可以通过网络让不同的机器,不同的操作系统彼此共享文件(sharefiles)——可以通过NFS挂载远程主机的目录,访问该目录就像访问本地目录一样,所以也可以简单的将转载 2016-10-27 14:23:03 · 544 阅读 · 0 评论 -
Linux C: 基于C/S的多线程网络编程 2 (多客户端)
客户端:#include#include#include#include#include#include#include#include#include#includechar name[64];int tcp_connect(const char* ip, int port) //用于客户端的连接{ int sfd = socket(AF_INET, SO原创 2016-07-07 00:36:54 · 948 阅读 · 0 评论 -
linux内核结构体中的.owner = THIS_MODULE是什么
其实这是Linux内核代码中一种特殊的结构体初始化方式---指定初始化。因为才谭浩强的书上也没有提到过,看过了一些C语言书也没有提到过。今天一查,原来这个是C99标准,这个目前也是最新的标准,之前我也清楚这件事,但是没意识到这是一个差别。在阅读GNU/Linux内核代码时,我们会遇到一种特殊的结构初始化方式。该方式是某些C教材(如谭二版、K&R二版)中没有介绍过的。这种方式称为指定转载 2016-09-09 01:08:09 · 3005 阅读 · 0 评论 -
用minicom 和开发版进行通讯时 端口被锁 Device /dev/ttyS0 lock failed 解决
当不当操作造成Device /dev/ttyS0 lock failed错误时,发现有三种解决办法1.重启电脑2.删掉/tmp中 的 相关lock文件即可原创 2016-08-31 23:52:00 · 1712 阅读 · 0 评论 -
Linux下搭建ARM交叉编译环境的步骤
1.将交叉编译工具链 arm-2009q1.tar.gz 复制到某目录下(这里为/opt/Tools),输入 sudo tar zxvf arm-2009q1.tar.gz 解压到当前文件夹2.设置环境变量,切换到root用户,修改 /root/.bashrc,在文件最后添加如下内容CROSS_COMPILE=arm-none-linux-gnueabi-PATH="/opt/To原创 2016-09-01 00:04:52 · 966 阅读 · 0 评论 -
Linux 命令:wget
用法: wget [选项]... [URL]...作用:下载文件,支持断点续传原创 2016-09-14 00:26:59 · 400 阅读 · 2 评论 -
linux设备驱动中file_operations结构体分析
struct module *owner第一个 file_operations 成员根本不是一个操作; 它是一个指向拥有这个结构的模块的指针. 这个成员用来在它的操作还在被使用时阻止模块被卸载. 几乎所有时间中, 它被简单初始化为 THIS_MODULE, 一个在 中定义的宏.loff_t (*llseek) (struct file *, loff_t, int);llseek 方转载 2016-09-24 10:23:49 · 402 阅读 · 0 评论 -
在Ubuntu 64位环境下编译Liunx内核出现 Can't use 'defined(@array)' 错误的解决办法
在编译嵌入式Linux内核时出现了以下错误提示:Can't use 'defined(@array)' (Maybe you should just omit the defined()?) at kernel/timeconst.pl line 373.起初一头雾水,仔细看了错误提示后删掉了kernel/timeconst.pl 文件中 373行的@val = @{$canned_v原创 2016-09-02 11:00:12 · 24841 阅读 · 3 评论 -
文件/etc/fstab
文件/etc/fstab包含了静态文件系统信息,定义了存储设备和分区整合到整个系统的方式。mount 命令会读取这个文件,确定设备和分区的挂载选项。字段定义/etc/fstab 文件包含了如下字段,通过空格或 Tab 分隔: - 要挂载的分区或存储设备. - 的挂载位置。 - 要挂载设备或是分区的文件系统类型,支持许多种不同的文件系统:ext2, e原创 2016-09-28 09:36:40 · 336 阅读 · 0 评论 -
简单的字符设备驱动模型
字符设备是指在I/O传输过程中以字符为单位进行传输的设备,这种设备没有缓存,例如键盘,打印机等。#include< linux/module.h>#include< linux/sche.h>#include< linux/kernel.h>#include< linux/init.h>static loff_t test_llseek(struct file *filp, loff_t of原创 2016-10-13 23:46:46 · 241 阅读 · 0 评论 -
解决makefile不兼容的问题:make降级
make自被大神RSM发布以来已经经历了许多次语法更新,所以时常有 makefile语法不兼容的问题,最好的方法便是回滚到旧版本。 1.下载目标make源码,地址 ftp.gnu.org/gnu/make 2.用tar解压 3.执行./configuration 4.执行 build.sh 5.删除旧版make : sudo apt-get remove make 6.执行 make i原创 2016-10-13 23:59:18 · 1824 阅读 · 2 评论 -
linux驱动程序makefile文件的解释
linux驱动程序makefile文件的解释原创 2016-10-25 17:07:27 · 480 阅读 · 0 评论 -
《UNIX网络编程》中五种I/O方式总结和对比
UNIX提供了五种不同的I/O模型:阻塞式I/O模型非阻塞式I/O模型I/O复用模型信号驱动式I/O模型异步I/O模型阻塞式I/O模型阻塞式I/O模型是最基本的I/O模型。在默认情况下,所有套接字都是阻塞的,以数据报套接字为例:当系统调用recvfrom系统调用函数时,当内核socket缓冲区中这个套接字数据报准备好时,将数据从内核缓冲区复制到用户空间,复制完成的时函数返回成功。当发生错原创 2017-11-29 13:16:39 · 3662 阅读 · 0 评论