Linux系统编程
Alex1_Code
目前从事软件开发工作
展开
-
Ubuntu 20.04桥接模式下的静态ip配置
虚拟机ubuntu桥接网络设置原创 2022-07-31 10:25:48 · 2863 阅读 · 4 评论 -
父子进程通信(文件描述符fd共享)
本文目标:通过文件描述符共享,实现父子进程通信代码段#include<stdio.h>#include<signal.h>#include<stdlib.h>#include<string.h>#include<unistd.h>#include<errno.h>int main(){ FILE* fp; if((fp=fopen("test.txt","w+"))==0) { perror("op原创 2021-06-25 10:27:22 · 505 阅读 · 0 评论 -
Linux线程同步(互斥锁,条件变量,信号量,自旋锁,读写锁)
1.互斥锁初始化锁int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);阻塞加锁非阻塞加锁解锁销毁,释放资源== 互斥锁存在优先唤醒的问题==2.互斥锁实现数据库连接池...原创 2021-05-19 15:55:36 · 398 阅读 · 0 评论 -
gcc编译,静态/动态库,gdb调试命令,makefie操作
1.gcc编译四步骤gcc -文件名系统会自动对编译文件进行命名为a.out命令:gcc hello.c -o hello1 -g用于调试gdb使用命令:gcc hello.c -D HELLO用于编译时定义宏#ifdef#define HI 20#endif2.静态库/动态库静态库:对时间要求较高,对空间要求较低动态库:对时间要求较低,对空间要求较高静态库制作:-o只是起到重命名的作用1.将.c文件生成.o文件gcc -c add.c -o add.o2.ar原创 2021-05-13 17:55:58 · 784 阅读 · 0 评论 -
Linux系统编程P20(管道)
管道(一)代码实现:#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#define ERROR_EXIT(m) (perror(m),exit(EXIT_FAILURE))int main(in原创 2021-05-13 12:56:39 · 161 阅读 · 0 评论 -
Linux系统编程P18-19(信号)
信号(三)SIGALRM#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#include <unistd.h>#include<signal.h>#define ERR原创 2021-05-11 14:26:30 · 168 阅读 · 0 评论 -
Linux系统编程P15(信号)
信号(一)中段分类信号信号与中断信号名称代码实现#include <fcntl.h>#include<errno.h>#include<string.h>#include <unistd.h>#include<signal.h>#define ERROR_EXIT(m) (perror(m),exit(EXIT_FAILURE))#define MAJOR(a) (int)((unsigned short原创 2021-05-10 12:27:13 · 165 阅读 · 0 评论 -
Linux系统编程P13-14(进程)
进程(五)exec替换进程映像exec关联函数组int main(int argc, char* argv[]){ printf("Enter main...\n"); printf("pid=%d\n",getpid()); //切换进程,但不改变ID号 execlp("./hello","hello",NULL); printf("Exit main...\n"); return 0;}int main(int argc, char原创 2021-05-09 12:39:49 · 91 阅读 · 0 评论 -
Linux系统编程P12(进程)
进程(四)fork之后父子进程共享文件sleep可以保证子进程先结束,父进程后结束。子进程与父进程共享文件的文件表:文件偏移值代码示例:#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#i原创 2021-05-08 13:22:41 · 106 阅读 · 0 评论 -
Linux系统编程P9-11(进程)
进程(一)fork调用1.一次调用两次返回,返回两个进程ID,存在两个进程一个新创建的进程,一个父进程2.孤儿进程:父进程结束,子进程还没有结束,子进程变为孤儿进程,托孤给1号进程3.僵尸进程:子进程先退出,父进程还没有查询子进程的退出状态,即处于僵尸状态ps-ef:查询进程的状态信息避免僵尸进程方法signal(SIGCHLD,SIG_IGN)代码示例:#include <unistd.h>#define ERROR_EXIT(m) (perror(m),exit(原创 2021-05-08 11:15:32 · 130 阅读 · 0 评论 -
Linux系统编程P8
文件与I/O(四)文件描述符0:标准输入,一般为阻塞状态文件描述符1:标准输出代码示例:#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#include <unistd.h>#d原创 2021-05-07 12:46:46 · 104 阅读 · 0 评论 -
Linux系统编程P7
文件与I/O(四)代码示例1:#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#include <unistd.h>#define ERROR_EXIT(m) (perror(m),原创 2021-05-07 11:09:39 · 116 阅读 · 0 评论 -
Linux系统编程P6
文件与I/O(三)获取文件信息代码实现#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#define ERROR_EXIT(m) (perror(m),exit(EXIT_FAILURE))原创 2021-05-06 23:01:00 · 134 阅读 · 0 评论 -
Linux系统编程P5
文件与I/O(二)read系统调用write系统调用Read/Write代码示例拷贝文件内容到另一个文件#include<stdio.h>#include<stdlib.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include<errno.h>#include<string.h>#define ERROR_EXI原创 2021-05-06 11:40:19 · 136 阅读 · 0 评论 -
Linux系统编程P4
1.文件与I/O文件描述符c函数库-文件指针FILE* fp stdin stdout stderr系统调用-文件描述符int STDIN_FILENO STDOUT_FILENO STDERR_FILENO文件描述符与文件指针转换#include<stdio.h>#include<stdlib.h>int main(){ printf("fileno(stdin)=%d",fileno(stdin)); return原创 2021-05-05 22:53:58 · 140 阅读 · 0 评论 -
Linux系统编程P1-3
1.计算机系统总线I/O设备内存计算机系统硬件组成什么是操作系统linux内核模块操作系统三个基本抽象进程进程上下文切换虚拟存储器进程虚拟地址空间## 进程虚拟地址空间虚拟文件系统操作系统2系统编程和应用编程系统资源系统调用在系统中所处的位置C库系统调用和C库的关系内核如何处理系统调用错误处理错误代码#include<unistd.h>#include<stdio.h>#include<原创 2021-05-05 18:57:48 · 125 阅读 · 0 评论