LINUX环境编程
文章平均质量分 84
基于LINUX的操作系统C语言编程
而塞过
代码创造世界
展开
-
LINUX的基本操作学习总结
前言从2020年11月定下了以后所打算从事的方向开始,就开始学习LINUX基础和LINUX环境编程,故谨以此文来记录LINUX的基础操作目录 1.linux的基础介绍及目录结构 2.运行指令及基本操作指令 3.vim的操作 4.开关机操作 5.用户管理 6.文件管理 7.组管理和权限管理 8.任务调度 9.磁盘分区和挂载 10.网络配置 11.进程管理 12.服务管理 13.RPM和YUMssds...原创 2021-01-05 09:55:56 · 4157 阅读 · 15 评论 -
LINUX环境下C编程 ------错误封装
案例要求实现与一个服务器的连接。将客户端的小写转化为大写。声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出C/S模型流程图注意事项2.bind,connect,accept函数要将sockaddr_in强制转化成socket sockaddr* 格式3.利用toupper来将字符转化4.在绑定套接字的时候要注意网络字节序(小端—>大端)代码实现#include <sys/socket.h>#include <sys/types.h>原创 2021-01-25 16:26:47 · 100 阅读 · 0 评论 -
Shell的基本操作学习总结
前言从2020年11月定下了以后所打算从事的方向开始,就开始学习LINUX基础和LINUX环境编程,故谨以此文来记录Shell的基础操作声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出(资料参考:刘瑞的Linux就该这么学)目录 1.Shell的基础介绍 2.变量 3.运算符 4.流程控制 5.读取输入 6.函数 7.案例综合应用 1.Shell的基础介绍 Shell 从单词上理解,Shell就是壳(与操作系统的内核[kernel]区别)。是一原创 2021-01-07 22:58:18 · 484 阅读 · 0 评论 -
APUE练习------kill函数和fork函数的综合使用
案例要求循环创建指定个数子进程,并且杀死指定的子进程(利用命令行参数实现)代码实现#include <signal.h>#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <stdlib.h>//创建指定个数的子进程,并且指定杀死相关的子进程//int main(int argc,char *argv[]){int main(int argc,c原创 2020-12-20 23:05:06 · 192 阅读 · 0 评论 -
APUE练习------综合案例exec函数族和dup2函数和pipe函数的结合
案例要求代码实现#include <stdio.h>#include <unistd.h>#include <stdlib.h>// 管道通信,for循环生成子进程,两个进程通信int main(){ pid_t pid; int fd[2]; int ret = pipe(fd); //新建子进程 pid = fork(); //判断管道是否创建成功 if( ret == -1){ perror("pipe"); exit(原创 2020-12-12 22:29:34 · 242 阅读 · 0 评论 -
APUE练习------进程相关之fork函数的使用
案例:创建一个子进程并且分别打印子进程和父进程的id号代码实现#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>//创建子进程int main(int argc,char* argv[]){ //定义pid pid_t pid;原创 2020-12-12 00:38:41 · 157 阅读 · 0 评论 -
APUE练习------环境变量
环境变量在操作系统中用来指定操作系统的运行的环境参数说明:1.本质是字符串2.格式是:name=value3.值是用来描述环境的相关信息4.以NULL结尾作为哨兵环境变量的检索顺序是从前往后(故在添加环境变量的时候尽量放在前面)加载的位置:在虚拟内存中与命令行参数相似,都是在用户区,且在stack上面关于环境变量的函数**char getenv(const char name);功能:获取环境变量返回值:出错-1正常情况下返回一个与name关联的指针*int putenv(ch原创 2020-12-09 12:38:07 · 143 阅读 · 0 评论 -
APUE练习------fcntl函数的使用
引言:在linux的文件i/o函数中在打开一个文件的时候,在不关闭文件的前提下,追加写入内容是一个很常见的操作fcntl就是这样子的一个函数,当然他的功能可不止这些。fcntl函数的详细说明函数格式:int fcntl(int fd ,int cmd ,…/arg/)该函数是一个变参函数,但是fd和cmd是必须要有的,而后面的参数取决于cmd指令,arg常为int型fd:文件描述符cmd:传入的指令(一会儿详细说明)返回值:-1 函数执行失败(可用perror来查看具体错误原因)取决于传原创 2020-12-09 10:53:35 · 106 阅读 · 0 评论 -
APUE练习---递归读取文件个数的实现
在Linux下递归读取文件个数的实现用到的主要函数有opendir(),readdir(),closedir(),strcmp(),sprintf()函数说明opendir()功能:用于打开目录返回值:dir指针,如果出错则返回NULL参数:文件目录readdir()功能:读取目录的具体信息返回值:返回一个dirent的结构体指针。struct dirent{d_ino(此目录下的inode数)d_off(目录文件到此目录的点位移)d_reclen(文件名的长度)d_name(文原创 2020-12-08 12:54:37 · 96 阅读 · 0 评论 -
APUE练习------chdir和chcwd函数的使用
chdir函数用于改变当前进程的目录getcwd函数用于读取当前进程的路径这两个函数经常结合使用#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>//改变当前进程打的目录/地址int main(int argc,char* a原创 2020-12-07 22:44:06 · 332 阅读 · 0 评论 -
APUE练习-----unlink函数的使用
unlink的使用unlink函数的使用场景:打开一个应用,先将内容缓存,在应用关闭的时候可以将缓存的内容删除函数使用的例子#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <fcntl.h>#include <stdlib.h>#include <unistd.h>//unlink函数的使用(删除临时文件/文件已经被打开的时候无原创 2020-12-07 22:14:04 · 160 阅读 · 0 评论 -
APUE练习------系统文件stat函数实现ls -l功能
在linux操作系统下利用stat函数实现ls -l 的功能#include <sys/stat.h>#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <string.h>#include <grp.h>#include <time.h>#include <pwd.h>//实现stat函数int main(原创 2020-12-05 23:34:17 · 188 阅读 · 0 评论 -
APUE练习------文件的读取和写案例
#include <sys/types.h> #include <sys/stat.h>#include <fcntl.h>#include <stdio.h>#include <unistd.h>#include <stdlib.h>int main(){ //将文件读取到另一个新建的文件下 //HH为当前目录下读取的目标文件 int fd = open("HH", O_RDONLY); i原创 2020-12-05 17:28:49 · 168 阅读 · 0 评论 -
LINUX下C语言GDB调试
gdb 可执行程序(要有输出编译的才可以-g)—进入gdb启动gdb start(只执行一次)n–next(下一步)单步s–step(进入函数体内部)单步c–continue(直接到断点处)finish(退出循环体内部)u(跳出单次循环)查看代码l(默认查看main.c)enter键重复上一次操作l .c :行号(查看指定的.c文件的具体行) l .c :函数名称(查看指定的.c文件的函数)设置断点b–break(给当前的.c文件添加断点)b *.c:行号(给指定的.原创 2020-12-05 15:23:11 · 178 阅读 · 1 评论 -
LINUX下c的编译
gcc的使用方法1.预处理(将所有的注释去掉/头文件展开/宏替换)-E2.编译(变成汇编文件)-S3.汇编(变成二进制文件)-c4.链接 生成可执行文件相关的参数-I (头文件路经)-L (库的路经)-l (库的名称)-O (优化代码0-3)-wall (生成警告信息)-g 调试程序-o 生成目标文件ldd 可执行程序 (查看可执行程序的依赖库)生成静态库的流程1.将.c文件生成.o文件(gcc *.c -c -I path)2.将.o文件打包成静态库(ar src li原创 2020-12-04 17:03:10 · 133 阅读 · 0 评论