很多人都在问Linux系统的write调用到底是不是原子的。网上能搜出一大堆文章,基本上要么是翻译一些文献,要么就是胡扯,本文中我来结合实例来试着做一个稍微好一点的回答。 先摆出结论吧。结论包含两点,即write调用不......
2023-10-13 07:14 阅读 阅读全文获取文件状态的系统调用有三个,分别是stat,fstat和lstat,其实他们的作用是一样的,都是查询某个文件的状态。如果查询成功,会把文件状态的信息填充在一个stat结构体中。他们的函数定义分别如下:int stat(const char *path, struct s......
2023-10-13 07:35 阅读 阅读全文 当前计算机都是多核的,linux2.6提供了进程绑定cpu功能,将进程指定到某个core上执行,方便管理进程。linux提供了sysconf系统调用可以获取系统的cpu个数和可用的cpu个数。sysconf 函数 man一下sysconf,解释这个函数用来获取系......
2023-10-13 08:19 阅读 阅读全文一、介绍// stdio 库函数当操作磁盘文件时,缓冲大块数据以减少系统调用,C语言库函数I/O函数fprintf,fscanf(),fgets(),fputs(),fputc(),fgetc()等都是这么做的,stdio库函数可以使编程者免于自行处理对数据的缓冲。运行在用户空间!,下一......
2023-10-10 01:11 阅读 阅读全文文章浏览阅读1.6k次。 以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表,即使是简单的字母序英文列表,能做......
2023-11-13 14:22 阅读 阅读全文Linux内核分析(六)昨天我们对字符设备进行了初步的了解,并且实现了简单的字符设备驱动,今天我们继续对字符设备的某些方法进行完善。今天我们会分析到以下内容:1. 字符设备控制方法实现2. 揭秘系统调用本质在昨天我......
2023-10-13 10:18 阅读 阅读全文open系统调用函数原型及解释【代码】 调用 open可以打开一个已经存在的文件(普通文件、特殊文件或命名管道),或创建一个新文件,但它只能创建普通文件(创建特殊文件需要使用 mknod,命名管道使用 mkfifo)。open返回......
2023-10-13 07:09 阅读 阅读全文一、介绍进程可以通过增加堆的大小来分配内存,所谓堆是一段长度可变的连续虚拟内存始于进程的未初始化数据段末尾,随着内存的分配和增加,通常将堆的当前内存边界称为"program break"(程序中断)二、接口定义#include ......
2023-10-10 01:13 阅读 阅读全文dd_clock_getcpuclockid()...
2023-10-10 01:13 阅读 阅读全文在linux纷繁复杂的内核代码中,sys_dup()的代码也许称得上是最简单的之一了,但是就是这么一个简单的系统调用,却成就了unix/linux系统最著名的一个特性:输入/输出重定向。sys_dup()的主要工作就是用来“复制”一个打开的文件......
2023-10-13 07:17 阅读 阅读全文