Linux C编程
文章平均质量分 63
SillyDuckkk
来日可期✿
展开
-
Linux系统调用和库函数调用的区别
❤函数库调用 VS 系统调用❤ 函数库调用 系统调用 在所有的ANSI C编译器版本中,C库函数是相同的 各个操作系统的系统调用是不同的 它调用函数库中的一段程序(或函数) 它调用系统内核的服务 与用户程序相联系 是操作系统的一个入口点 在用户地址空间执行 在内核地址空间执行 它的运行时间属于“用户时间” 它的运行时间属原创 2017-06-08 03:03:58 · 379 阅读 · 0 评论 -
Linux C编程学习笔记(7):线程控制
在写线程总结前,鸭鸭先来说说进程和线程的异同点~相同点: 无论是进程还是线程,都是用来实现多任务并发的技术手段.二者都可以独立调度.在多任务程序中,子进程(子线程)的调度一般与父进程(父线程)平等竞争。不同点: 进程是操作系统资源分配的基本单位,线程是调度的基本单位.进程也可以被调度,但是线程是更小的可以调度的单位进程在执行过程中拥有独立的内存单元,线程基本上不拥有系统资源,它与同属原创 2017-08-02 15:45:41 · 419 阅读 · 0 评论 -
Linux C编程学习笔记(4):dup,dup2,fcntl系统调用
dup、dup2函数:1.原型: #include int dup(int oldfd); int dup2(int oldfd, int newfd);2.功能: 利用函数dup,我们可以复制一个文件描述符。传给该函数一个既有的描述符,它就会返回一个新的描述符,这个新的描述符是传给它的描述符的拷贝。这就意味着,这两个描述符共享所有的锁定、读写指针和各项权限或标志位。例原创 2017-07-24 17:15:42 · 624 阅读 · 0 评论 -
O_CREAT | O_EXCL的作用
今天再看Linux C编程的第六章时,鸭鸭又发现了一个问题= =在open的时候常常会使用O_CREAT | O_EXCL(或运算,相当于+),比如:open(“yaya.c”,O_CREAT|O_EXCL,S_IRUSR|S_IWUSR); O_CREAT:文件存在则使用,不存在则新建 O_EXCL:检查文件是否存在,不存在则新建,存在则返回错误信息那如果鸭鸭只是想打开一个文件,直接用O_CR原创 2017-07-19 16:23:14 · 10338 阅读 · 0 评论 -
dup,dup2函数,复制文件描述符
先了解一下文件描述符在内核中的形态. 一个进程在存在期间,会有一些文件被打开,从而会返回一些文件描述符,从shell中运行一个进程,默认会有3个文件描述符存在(0、1、2) 0与进程的标准输入相关联 1与进程的标准输出相关联 2与进程的标准错误输出相关联 dup 和 dup2 都可以用来复制一个现存的文件描述符。经常用来重新定向进程的 STDIN,STDOUT,STDERR#incl原创 2017-07-31 11:43:30 · 417 阅读 · 0 评论 -
Linux C编程学习笔记(6):进程控制
先来跟鸭鸭理清几个名词吧~多用户:多个用户同一时间使用计算机 多任务:同时执行几个任务,并且可以在还没有执行完一个任务的时候执行另一个任务 程序:静态,保存在硬盘上的可执行代码 进程:动态,运行中的程序,表示过程(操作系统资源管理的最小单位) 线程:在进程内部,比进程更小的能独立运行的基本单位 PS.与同属一个进程的其他线程共享进程拥有的全部资源 一个线程可以创建和撤销原创 2017-07-31 10:58:49 · 966 阅读 · 0 评论 -
书上没有详细列出的几个函数归纳
函数名: getpwuid功能:得到指定用户信息,使用uid(user ID)作为参数返回一个指向struct passwd的指针。 原型: #include #include struct passwd * getpwuid(uid_t uid);返回值: 出错则返回NULL,成功则返回指向struct passwd的指针/* The passwd structu原创 2017-06-14 13:45:18 · 430 阅读 · 0 评论 -
Linux C编程学习笔记(3):read、write、lseek函数及文件读写和文件读写指针的移动操作
read函数:1.原型: #include ssize_t read(int fd, void *buf,size_t count);2.功能: 从打开的设备或文件中读取数据。3.参数: count是请求读取的字节数,从fd所指向的文件中读上来的数据保存在缓冲区buf中。同时文件读写指针也会随读到的字节移动。 注意返回值类型是ssize_t,表示有符号的原创 2017-06-10 04:55:47 · 6727 阅读 · 4 评论 -
Linux C编程学习笔记(2):open、creat、close函数及文件的创建、打开与关闭
my_create.c#include <stdio.h>#include <stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#include <errno.h> //根据errno值的不同来确定具体的错误类型int main(){ int fd;原创 2017-06-09 03:41:15 · 3586 阅读 · 0 评论 -
Linux C编程学习笔记(1):chmod函数及文件的访问权限控制
#include <stdio.h>#include <stdlib.h>#include <sys/types.h> //基本系统数据类型#include <sys/stat.h> //文件状态//argc记录了用户在运行程序的命令行中输入的参数的个数 //**argv:或者认为是*argv[]字符串指针数组,每一个元素指向一个在命令行输入的参数//编译器将输入参数的信息放入main原创 2017-06-09 01:25:50 · 3058 阅读 · 0 评论 -
exit和return的区别
exit(0):正常运行程序并退出程序;exit(1):非正常运行导致退出程序;return():返回函数,若在主函数中,则会退出函数并返回一个值。区别详解:return返回函数值,是关键字; 而exit 是一个函数。return是语言级别的,它表示了调用堆栈的返回;而exit是系统调用级别的,它表示了一个进程的结束。return是函数的退出(返回);exit是进程的退出。return是C原创 2017-06-09 01:32:28 · 714 阅读 · 0 评论 -
Linux中umask的使用方法
在Linux下新建文件和目录的时候,不用我们去手动设置权限,就会有一个默认的权限。这个默认权限就是根据其本身最大权限和umask计算而来的。 创建文件默认最大权限为666 (-rw-rw-rw-),默认创建的文件没有可执行权限x位。 创建目录默认最大权限777(-rwxrwxrwx),默认创建的目录属主是有x权限,允许用户进入。 那什么是umask呢? umask就原创 2017-06-09 22:26:27 · 1702 阅读 · 1 评论 -
Linux /根目录下子目录的存放内容
/bin:存放普通用户可执行的命令,系统中任何用户都可执行。 /boot:存放Linux内核文件以及开机菜单与开机所配置文件。 /dev:存放设备文件的存储目录,如硬盘、光驱等。 /etc:存放系统的配置文件,如用户账号密码、各种服务的起始文件等。只有root有权利修改。 /home:普通用户的主目录,每个用户在该目录下都有一个与用户同名的目录。 /lib:存放开机时用到的函数库,以及在原创 2017-06-07 23:18:30 · 3301 阅读 · 0 评论 -
Linux C编程学习笔记(5):文件属性操作和目录操作,ls的实现
获取文件属性:#include#include#includeint stat(const char *filename,struct stat *buf);int fstat(int filedes,struct stat *buf);int lstat(const char *filename,struct stat *buf);---//区别:stat用于获取由参数fi原创 2017-07-25 10:40:43 · 757 阅读 · 0 评论