linux总结应用之四 系统调用函数

(一):creat 系统调用: 创建文件的系统调用  

调用方法:

#include  <sys/types.h>

#include  <sys/stat.h>

#include  <fcntl.h>

int creat(const char* path,mode_t mode);

其中path是文件描述符,mode是文件的权限.

完全等价于近代的open()调用

         fd = open(file,O_WRONLY|O_CREAT|O_TRUNC,mode);

(二):read系统调用:如果该文件是用O_RDONLY或O_RDWR标志打开的

         # include <sys/types.h>

# include <unistd.h>

    int read(int fd,void *buf,size_t nbytes);

其中fd是想要读的文件描述符,buf是指向内存块的指针,nbytes是要读的个数

(三);write系统调用:   

    # include <sys/types.h>

# include <unistd.h>

    int write(int fd,void *buf,size_t nbytes);

     注意:write写入的不是磁盘而是内存缓冲区。write不可能直接写入磁盘。

    fd = open(file,O_WRONLY|O_SYNC);

O_SYNC这个标志的效果是使对特定的文件描述符write()系统调用

和相应的实际写磁盘同步,事实上,直到实际写磁盘已经完成,write()系统调用才返回。

时间: 2024-09-07 03:40:21

linux总结应用之四 系统调用函数的相关文章

linux内核学习之四 系统调用

一  概念区分 提到linux系统调用,不得不区分几个比较容易混淆的概念: 系统调用:系统调用就是一种特殊的接口.通过这个接口,用户可以访问内核空间.系统调用规定了用户进程进入内核的具体位置. 应用程序接口(API,Application Programming Interface):是一些预定义的函数.API提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. c库:c库实现了linux的主要API,包括标准的C库函数和系统调用.同时lin

Linux操作系统中的系统调用接口函数

在分析病毒样本时发现有些系统函数是必用,有些超常用,现在都列出来,希望和大家交流 转载请注明出处:http://blog.csdn.net/u010484477     O(∩_∩)O谢谢 进程控制 fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 getpgrp 获取当前进程组

linux下的系统调用函数到内核函数的追踪

使用的 glibc : glibc-2.17  使用的 linux kernel :linux-3.2.07 系统调用是内核向用户进程提供服务的唯一方法,应用程序调用操作系统提供的功能模块(函数).用户程序通过系统调用从用户态(user mode)切换到核心态(kernel mode ),从而可以访问相应的资源.这样做的好处是:为用户空间提供了一种硬件的抽象接口,使编程更加容易.有利于系统安全.有利于每个进程度运行在虚拟系统中,接口统一有利于移植.             运行模式.地址空间.上

Linux多任务编程之四:exit()函数及其基础实验(转)

来源:CSDN  作者:王文松   转自Linux公社 exit()和_exit()函数 函数说明 创建进程使用fork()函数,执行进程使用exec函数族,终止进程则使用exit()和_exit()函数.当进程执行到exit()或 _exit()函数时,进程会无条件的停止剩下的所有操作,清除各种数据结构,并终止本进程的运行.但是,这两个函数还是有区别的,其调用过程如图1所 示: 从图1可以看出,_exit()函数的作用是:直接使进程停止运行,清除其使用的内存空间,并清除其在内核中的各种数据结构

【Linux&amp;Unix--exec 与 fock 系统调用】

个人学习整理,如有不足之处,请不吝指教.转载请注明:@CSU-Max 系列博文: Linux&Unix学习第一弹 -- 文件描述符与权限   Linux&Unix学习第二弹 -- 文件描述符与权限 进程和程序 简单的说,进程与应用程序的区别在于应用程序作为一个静态文件存储在计算机系统的硬盘等存储空间中,而进程则是处于动态条件下由操作系统维护的系统资源管理实体. (1)进程更能真实地描述并发,而程序不能. (2)进程由程序和数据两部分组成,进程是竞争计算机系统有限资源的基本单位,也是进程处理

linux编程中接收主函数返回值以及错误码提示

程序A创建子进程,并调用进程B,根据不调用的不同情况,最后显示结果不同. #include <stdio.h> #include <unistd.h> #include <sys/wait.h> #include <sys/types.h> #include <errno.h> int main() { pid_t pid, rpid; int stat; if ((pid = fork()) < 0) { perror("for

Linux内核分析——扒开系统调用的三层皮(上)

马悦+原创作品转载请注明出处+<Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.用户态.内核态和中断处理过程 1.用户通过库函数与系统调用联系起来. 2.在高执行级别下,代码可以执行特权指令,访问任意的物理地址,这种CPU执行级别就对应着内核态.而在相应的低级别执行状态下代码的掌控范围受到限制.只能在对应级别允许的范围内活动. 3.intel x86 CPU有四种不同的执行级别0-3.Linux只取两种,0级

Ubuntu 14.04 + Linux 3.14.34 系统调用实现文件拷贝

采用 64位系统, ubuntu 14.04 + 新内核linux-3.14.34 下载地址https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.14.34.tar.xz使用之前/boot/grub/grub.cfg不要做更改,如果更改过最好把之前的更改删除掉. 为了免除麻烦需要先获取root权限,执行如下指令sudo su 根据提示输入密码 过程如下:1.首先将新内核解压至usr/src下; 2.然后利用命令 , "cd /usr/src/l

linux socket网络编程 常用函数及头文件

转自:http://blog.chinaunix.net/u3/102500/showart_2065640.html 一 三种类型的套接字: 1.流式套接字(SOCKET_STREAM) 提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种. 2.数据报式套接字(SOCKET_DGRAM) 提供无连接的数据传输服务,不保证可靠性. 3.原始式套接字(SOCKET_RAW) 该接口允许对较低层次协议,如IP,ICMP直接访问. 二 基本套接字系统调有有如下一