随笔分类 -  linux 系统调用

摘要:延时函数的两种常用名称是sleep和delay。一般在上位机多见sleep,单片机常用delay。那么sleep和delay的意义有何区别? sleep意为睡眠,即线程挂起,由定时器重新唤醒线程。sleep作用期间,该线程不占用CPU资源。 delay意为延迟,即线程等待,由线程自身进行循环查询,在 阅读全文
posted @ 2022-12-08 11:13 zxiaocheng 阅读(1550) 评论(0) 推荐(0) 编辑
摘要:Linux内核中实现工作推后执行的方法有:软中断、tasklet和工作队列(work queue)。 本文介绍工作队列的简单用法。 一、工作任务定义Linux内核中的工作队列包括:共享工作队列和自定义工作队列。区别如下: 1)共享工作队列:将新创建的工作任务添加到Linux内核创建的全局工作队列sy 阅读全文
posted @ 2022-09-16 09:34 zxiaocheng 阅读(993) 评论(0) 推荐(0) 编辑
摘要:一、Linux系统休眠在嵌入式设备中由于省电功耗等原因我们需要让系统在不忙的时候进入休眠模式,Linux pm core提供给我们wakelock及autoslepp内核休眠机制。autosleep 和 wakelock是并行存在,只有 wakelock 唤醒锁全部释放且 autosleep 为 e 阅读全文
posted @ 2022-06-16 10:06 zxiaocheng 阅读(3013) 评论(0) 推荐(0) 编辑
摘要:之前在《简单的读和写》中提到过file_operations结构中的读/写方法中的buff参数是指向用户空间的缓冲区。而用户空间的指针,内核代码不能直接引用其中的内容。 所以用了copy_to_user和copy_from_user来完成最后的读写操作。 这里介绍另一对可以完成读写的函数:simpl 阅读全文
posted @ 2020-04-09 18:15 zxiaocheng 阅读(2608) 评论(0) 推荐(0) 编辑
摘要:popen可以是系统命令,也可以是自己写的程序a.out。 假如a.out就是打印 “hello world“ 在代码中,想获取什么,都可以通过popen获取。 比如获取ls的信息, 比如获取自己写的程序的内容:“hello world” 。 https://www.cnblogs.com/syla 阅读全文
posted @ 2020-04-01 16:09 zxiaocheng 阅读(388) 评论(0) 推荐(0) 编辑
摘要:简单说一下popen()函数 函数定义 1 2 3 #include <stdio.h> FILE * popen(const char *command , const char *type ); int pclose(FILE *stream); 函数说明 popen()函数通过创建一个管道,调 阅读全文
posted @ 2020-04-01 15:58 zxiaocheng 阅读(1495) 评论(0) 推荐(0) 编辑
摘要:Linux对于每个用户,系统限制其最大进程数。为提高性能,可以根据设备资源情况,设置各linux 用户的最大进程数 可以用ulimit -a 来显示当前的各种用户进程限制。 下面我把某linux用户的最大进程数设为10000个: ulimit -u 10240 对于需要做许多 socket 连接并使 阅读全文
posted @ 2020-03-31 15:03 zxiaocheng 阅读(496) 评论(0) 推荐(0) 编辑
摘要:中断有两种,一种是CPU本身在执行程序的过程中产生的,一种是由CPU外部产生的。外部中断,就是通常所讲的“中断”(interrupt)。对于执行程序来说,这种“中断”的发生完全是异步的,因为不知道什么时候会发生。CPU对其的响应也完全是被动的,可以通过“关中断”指令关闭对其的响应。由软件产生的中断一 阅读全文
posted @ 2019-11-08 18:33 zxiaocheng 阅读(5499) 评论(0) 推荐(2) 编辑
摘要:1、select函数作为定时器使用 it_value.tv_sec = 0; it_value.tv_usec = 100000; select(1,NULL,NULL,NULL,&it_value); 上面的代码并不是立即返回而是等待100ms,可以作为定时器使用,并且准确度比sleep高。2、l 阅读全文
posted @ 2018-11-14 10:21 zxiaocheng 阅读(3331) 评论(0) 推荐(1) 编辑
摘要:一、数据成员 termios 函数族提供了一个常规的终端接口,用于控制非同步通信端口。 这个结构包含了至少下列成员:tcflag_t c_iflag; /* 输入模式 */tcflag_t c_oflag; /* 输出模式 */tcflag_t c_cflag; /* 控制模式 */tcflag_t 阅读全文
posted @ 2018-11-09 11:37 zxiaocheng 阅读(1355) 评论(0) 推荐(0) 编辑
摘要:这两个命令都是查看系统进程信息的命令,但是用处有点儿不同 1.ps命令--提供系统过去信息的一次性快照 也就是说ps命令能够查看刚刚系统的进程信息 命令:ps aux或者ps lax [root@Linux ~]# ps auxUSER PID %CPU %MEM VSZ RSS TTY STAT 阅读全文
posted @ 2018-11-08 14:49 zxiaocheng 阅读(3412) 评论(0) 推荐(0) 编辑
摘要:completion是一种轻量级的机制,它允许一个线程告诉另一个线程工作已经完成。可以利用下面的宏静态创建completion: DECLARE_COMPLETION(my_completion); 如果运行时创建completion,则必须采用以下方法动态创建和初始化: struct complt 阅读全文
posted @ 2018-01-22 17:19 zxiaocheng 阅读(475) 评论(0) 推荐(0) 编辑
摘要:dmesg 的时间戳处理 dmesg_with_human_timestamps () { $(type -P dmesg) "$@" | perl -w -e 'use strict; my ($uptime) = do { local @ARGV="/proc/uptime";<>}; ($up 阅读全文
posted @ 2018-01-19 15:36 zxiaocheng 阅读(564) 评论(0) 推荐(0) 编辑
摘要:linux popen函数 描述 popen() 函数 用 创建管道 的 方式启动一个 进程, 并调用 shell. 因为 管道是被定义成单向的, 所以 type 参数 只能定义成 只读或者 只写, 不能是 两者同时, 结果流也相应的 是只读 或者 只写. command 参数 是 一个 字符串指针 阅读全文
posted @ 2018-01-15 18:25 zxiaocheng 阅读(1402) 评论(0) 推荐(0) 编辑
摘要:linux编程-守护进程编写 守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待 处理某些发生的事件。守护进程是一种很有用的进程。 Linux的大多数服务器就是用守护进程实现的。比如,Internet服务器inetd,Web服务器httpd等。 同时, 阅读全文
posted @ 2018-01-15 17:56 zxiaocheng 阅读(316) 评论(0) 推荐(0) 编辑
摘要:简洁版: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 详细版: 阅读全文
posted @ 2018-01-09 14:05 zxiaocheng 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:Linux监控重要进程的实现方法 不管后台服务程序写的多么健壮,还是可能会出现core dump等程序异常退出的情况,但是一般情况下需要在无 人为干预情况下,能够自动重新启动,保证服务进程能够服务用户。这时就需要一个监控程序来实现能够让服务进程自动重新启动。查阅相关资料及尝试一些方法之后,总结lin 阅读全文
posted @ 2018-01-09 10:36 zxiaocheng 阅读(10298) 评论(0) 推荐(1) 编辑
摘要:1.start-stop-daemon start-stop-daemon是一个Debian体系里的一个守护进程管理软件,可以用指定的用户启停软件。CentOS有自己的daemon()机制(在/etc/init.d/functions)。但是如果你手上有一个脚本,必须使用start-stop-dae 阅读全文
posted @ 2018-01-09 10:31 zxiaocheng 阅读(2007) 评论(0) 推荐(0) 编辑
摘要:Daemon函数的用法 说明: 让一个程序后台运行。 原型: [c-sharp] view plain copy print? #include <unistd.h> int daemon(int nochdir, int noclose); [c-sharp] view plain copy pr 阅读全文
posted @ 2018-01-08 21:25 zxiaocheng 阅读(494) 评论(0) 推荐(0) 编辑
摘要:在Linux系统下,一个Services的启动、停止以及重启通常是通过/etc/init.d目录下的脚本来控制的。然而,在启动或改变运行级别时,是在/etc/rcX.d中来搜索脚本。其中X是运行级别的number。本文将解释如何启动、关闭和修改服务的运行。当你在Debian下安装一个新的服务,比如A 阅读全文
posted @ 2017-12-28 10:07 zxiaocheng 阅读(1158) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示