Linux系统编程
Linux环境下(Ubuntu为例)系统编程常见问题
存墨
做一个有情怀的程序员
展开
-
库函数调用和系统调用的区别
在日常工作中一般会根据不同的情况选择使用系统调用或者库函数,对于它们有什么区别列在下面:原创 2021-12-07 22:34:33 · 95 阅读 · 0 评论 -
Linux中对文件的重命名/删除操作
当需要对文件进行重命名/删除操作时,进程不需要打开该文件,实际上,这些操作(重命名/删除)并不会作用于该文件的内容,而是会作用于该文件的相关的一个/多个目录。 例如对文件重命名,我们通过如下方式进行: int res = rename(oldpath, newpath); 当需要删除一个文件时可以调用: ret = unlink(pathname); 当pathname为该文件的最后一个链接时该文件会被删除;否则会将该pathname所标识的访问入口删除——即删除一个链接,同时减少该文件的链接数量;加粗原创 2021-11-24 21:04:42 · 769 阅读 · 0 评论 -
Linux中的文件类型和文件包含的信息
Linux文件包含以下种类: 1.普通文件 2.目录 3.符号链接 4.块设备文件 5.字符设备文件 6.无名管道和有名管道 7.套接字 前三种类型是所有Linux文件系统中都有的类型,这些类型的实现在第八章详细描述。设备文件和IO文件与集成在内核中的设备驱动相关联;比如,当程序访问一个设备文件时,它直接通过该文件相关的IO驱动来操作。管道和套接字是用于进程间通信的特殊文件。Linux中明确区分文件内容和文件信息。除了驱动文件和文件系统中特殊的文件之外,每个文件由字节序列组成。这些文件不包含任何控制信息,比原创 2021-11-22 21:53:00 · 915 阅读 · 0 评论 -
有名管道实现进程通信(2个客户端互聊)
标题有名管道实现进程通信(2个客户端互聊) client1.c #include<stdio.h> #include<error.h> #include<unistd.h> #include<string.h> #include<stdlib.h> #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h> #include<signal.h&g原创 2021-11-10 22:40:35 · 276 阅读 · 0 评论 -
Linux系统调用——文件操作读取获取运行时间写入日志文件
功能描述:程序运行时实时显示(1秒钟刷新一次),程序运行开始和结束时将结束时间写入日志文件中【即程序记录开始时间和结束时间】; file.c #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <unistd.h> #include <time.h> #include <stdio.h> #define TIME_STR_MAX_LEN 20原创 2021-10-31 17:01:23 · 571 阅读 · 0 评论 -
Linux中的fork函数创建进程链和进程扇
这里我们所说的进程链和进程扇在实际内存中进程ID之间的逻辑关系,在物理内存中并不存在这样的实际存储结构; 这两种逻辑结构的实现是通过fork()函数实现的; 函数原型: pid_t fork(void); 关于函数的返回值,通过查阅手册可以得到以下信息: Upon successful completion, fork() shall return 0 to the child process and shall return the process ID of the child process原创 2021-10-24 20:33:21 · 416 阅读 · 0 评论