编译工具链
一.编译1234567sudo apt install gcc g++ gdbgcc -E main.c -o main.i # -E生成预处理后的文件gcc -S main.i -o main.s # -S生成汇编文件gcc -c main.c -o main.o # -c生成目标文件# 一步到位,直接生成可执行程序gcc main.c -o main 条件编译 123#if #endif#ifdef #endif#ifndef #endif 调试信息 123456789#include <stdio.h>int main(){#ifdef DEBUG printf("一些调试信息");#endif return 0;}//-D参数进行DEBUG宏定义 将会输出调试信息gcc main.c -o main -DDEBUG 避免头文件重复包含 1234567#ifndef WANGDAO#define WANGDAOstruct Student{ int age; ...
目录操作
一.错误1.检测错误 ①函数返回值 1fopen,malloc函数发生错误,返回NULL ②设置errno errno为0表示没有错误;非0表示发生了某种错误 2.打印错误信息123456789101112131415#include <errno.h>#include <string.h>int main(int argc,char* argv[]){ printf("errno=%d\n",errno); //0 FILE* fp=fopen("a.txt","r"); printf("errno=%d\n",errno); //2 //strerror() 方法会打印errno详细错误信息 printf("%s\n",strerror(errno)); //第一种方法 perror("前缀信息:自动添加到strerror(errno)前面"); //第二种方法 ...
常用命令
一.用户子系统123456789101112# 查看所有用户sudo cat /etc/passwd# 添加用户 -m:用户创建家目录 -s:用于指定bashsudo useradd -m -s /bin/bash test # 删除用户sudo userdel -r test# 设置密码sudo passwd [用户名]# 切换用户 默认切换到root用户sudo su sudo su testexit #退出切换 二.文件子系统 目录名 功能 /bin(binary) 存放可执行程序或脚本文件 /sys(system) 存放和系统相关的文件 /dev(device) 存放设备文件 /etc 存放配置文件 /lib(library) 存放系统库文件 /var(variable) 存放变化很快的文件,如日志文件 /proc(process) 存放进程数据 /root root家目录 /home/{username} 普通用户家目录 1...
Vim
一.移动光标 命令 含义 h 往左移动一个字符 j 往下移动一个字符 k 往上移动一个字符 l 往右移动一个字符 [n]- 往上移动n行 [n]+ 往下移动n行 :[n] or [n]G 移动到n行 gg 移动到文件第一行 G 移动到文件最后一行 w 下一个单词的词首 b 上一个单词的词首 t) 向后查找,将光标移动到)的前一个字符 T” 向前查找,将光标移动到”的后一个字符 f) 向后查找,将光标移动到) F” 向前查找,将光标移动到” 二.动作1.删除文本(delete) 命令 含义 x 删除一个字符 dw 删除一个单词 [n]dw 删除n个单词 dd 删除一行 [n]dd 删除n行 :[m],[n]d 删除[m,n]行 d^ 删除到行首 d$ 删除到行尾 dt) 删除到) dt” 删除到” 2.复制文本(yank) 命令 含义 yy 复制一行 nyy 复制n行 :[m],[n]y 复制[m,n]行 yw 复制一个单词 [n]yw...

