
Linux
Linux系统编程基础知识
今夕何处
这个作者很懒,什么都没留下…
展开
-
指针的运用熟悉
// 6_9.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include<stdio.h>#include<stdlib.h>float *show(int a,float (*arr1)[4])//指针函数{ /*float *pt=NULL; pt=*(arr1+a);*/ return *(arr1+a);};int Max(int a,int b){ return a>b?a转载 2020-12-01 23:02:46 · 124 阅读 · 0 评论 -
Xshell7 ubuntu连接
步骤:一 · ubuntu下安装openshell - sudo apt-get install openssh-server二 ·原创 2020-10-21 10:12:22 · 793 阅读 · 0 评论 -
线程同步
Linux_learn/pthread/pthread.c 执行代码可以发现最后num值小于10000.数据混乱原因如下图:混乱原因:操作了共享资源CPU调度问题解决:线程同步线程同步思想原创 2020-08-23 16:32:33 · 147 阅读 · 0 评论 -
设置线程分离
int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine) (void *), void *arg);调用此函数创建线程时即可设置线程分离。设置步骤如下设置步骤:先定义线程属性类型phread_attr_t attr;线程属性操作初始化线程属性:int pthread_attr_init(pthread_attr_t *attr)设置线程分离属性:int pt原创 2020-08-23 15:36:46 · 453 阅读 · 0 评论 -
信号
特点:简单携带信息量少用于某种特定的场景信号状态:产生未决 —产生但未处理抵达----传输到相关进程,并处理信号集(位于pcb中不能直接操作):阻塞信号集:放置的是要屏蔽的信号未决信号集:没有被处理的信号给某个进程发送信号, kill -l 可以查看sigint kill(pid_t pid, int sig);自己给自己发信号int raise(int sig);自己给自己发一个SIGABRT信号void abort(void)闹钟,当时间会发送一个SIGALRM给调用该原创 2020-08-22 19:53:15 · 141 阅读 · 0 评论 -
Makefile根基
IDE过程: 预处理 —> 汇编 —> 编译—>链接.makefile是一种脚本语言第一层:显示规则#代表注释目标文件:依赖文件 [TAB]指令 hello.i:hello.c gcc -E hello.c -o hello.igcc编译过程:hello.i:hello.c gcc -E hello.c -o hell.i #预编译 hello.S:hello.i gcc -S hello.i -o hello.S #汇编 hello原创 2020-07-25 19:28:03 · 369 阅读 · 0 评论 -
wait函数使用
wait使用:#include <stdio.h>#include <unistd.h>#include <sys/types.h>#include <sys/wait.h>int main(){ pid_t pid = fork(); if(pid == 0) { /* child process*/ printf("child id:%d ppid:%d\n", getpid(),原创 2020-06-25 11:00:30 · 918 阅读 · 0 评论 -
exec函数族
execl函数使用说明:原创 2020-06-25 10:01:23 · 152 阅读 · 0 评论 -
VIM
IDE:集成开发环境GUI:图形界面接口VIM:vi系统自带,功能较弱,vim需要安装,功能强大vim帮助手册查看:shell下敲:vimtutor三种模式:命令行:保存退出:ZZ代码格式化:gg=G光标的移动:HJKL 左下上右快速移动到行首:0快速移动到行尾:$快速移动到文件头:gg快速移动到文件尾:G移动到x行:x+G向下跳x行:x+Enter删除光标前字符:x,后:X删除一个单词:d+w删除光标后面:d+¥ / D删除(剪切)光标所在行:dd删除光标一下x原创 2020-06-13 15:08:39 · 196 阅读 · 0 评论 -
Linux 文件阻塞跟非阻塞
阻塞#include <stdint.h>#include <string.h>#include <errno.h>#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <unistd.h>#define SIZE 10int main(){ char temp[SIZE] = " 0 "; if(0 &原创 2020-06-07 19:10:33 · 765 阅读 · 0 评论 -
Linux 文件操作系统函数进程线程相关
系统函数:调用系统函数,用户空间 -> 内核空间系统API:应用层:fopen系统层:open内核:设备驱动函数FILE *fp.fp 为一个结构体的指针,结构体中包含打开文件的各种属性。打开文件 --> 写入IO缓冲区 --> 磁盘虚拟地址空间:程序运行起来后,磁盘上都会有一个虚拟地址空间,在数据处理的时候会通过MMU(内存管理机制)把虚拟地址空间映射到物理内存上进行处理。进程管理:PCB(一个400多行的结构体)进程管理控制块中的文件描述符标,文件描述符表前三原创 2020-06-07 18:07:59 · 274 阅读 · 0 评论 -
gdb 常用指令
gdb调试程序需要传入参数:在运行前 set args .....(需要传入的参数)代码查看:l ==》从main函数开始查看代码show listsize ==》显示当前 l 查看代码会显示多少行set listsize 20 ==》 设置 l 显示为20行l 行号 ==》显示该行号的上下文代码l 函数名 ==》查看函数l 文件名:行号l 文件名:函数名断点相关操作:b 行号b 函数名b 文件名:行号b 文件名:函数名i b ==》查看断点编号del 断点编号 ==》原创 2020-06-06 13:31:25 · 990 阅读 · 0 评论