随笔分类 - linuxC
摘要:1. 代码举例 //example.c #include <stdio.h> int addNumbers(int num1, int num2) { return num1 + num2; } int main() { int a = 10; int b = 20; int sum = addNu
阅读全文
摘要:window下使用vscode和cmake开发编译cpp代码 1. 先准备cpp编译环境 还是要先使用vscode和mingw搭建好cpp开发环境,因为cmake不是一个编译工具,它只不过是根据CMakeLists.txt文件生成Makefile文件,Makefile文件再通过make规则使用gcc
阅读全文
摘要:window下使用vscode和mingw搭建cpp开发环境 1. 下载安装MinGW MinGW是一款在Windows平台上运行的GNU工具集,它提供了一套构建应用程序的开发工具,包括GNU C/C++编译器、GDB调试器、GNU二进制工具等。它可以用于开发Windows应用程序,也可以用于开发跨
阅读全文
摘要:以下是fun.sh文件 #!/bin/bash sed -i 's/\r//' $0 #替换本文件的\r为空,因为我是在window下编写linux上执行的 function max(){ if [ $# -ne 2 ];then echo "必须两个参数,调用方法:max p1 p2" else
阅读全文
摘要:Ubuntu 安装man手册 sudo apt-get install manpages-dev sudo apt-get install manpages-posix-dev
阅读全文
摘要:#include<stdlib.h> #include<stdio.h> #include<pthread.h> #include<unistd.h> typedef struct msg { struct msg* next; int num; }msg_t; pthread_mutex_t mu
阅读全文
摘要:1. 线程概念 Linux里的线程,也叫轻量级进程(light weight process),本质上是进程。 Linux早期是没有线程的,后来的线程是借助进程实现的。线程、进程的核心都是调用系统的clone方法实现。 线程和进程的区别:(说明:PCB即进程控制块) 进程拥有PCB,用于独立的地址空
阅读全文
摘要:void test_daemond() { //1.fork()子进程 //2.sid()新建新会话,脱离终端 //3.chdir()切换工作目录,防止占用可卸载的文件系统 //4.umask(0)重置文件权限掩码,防止继承父进程的文件屏蔽字拒绝某些权限 //5.close(fd)关闭打开的继承父进
阅读全文
摘要:1.信号特性: 简单但不可靠,不能携带大量信息,特定条件才触发。 包括软件中断和硬件中断。 软件中断如:调用abort、raise,alarm,setitimer等函数触发的中断 硬件中断如:除0导致的SIGFPE(浮点数例外),非法访问内容导致的SIGSEGV(段错误),非法内容对齐等导致的总线错误(SIGBUS) 等等2.信号三要素: 1)编号:信号编号范围是1~64。1~31为常规信号编号。
阅读全文
摘要:注意:编译生成可执行文件时之前必须加参数 -g,比如:gcc hello.c -o hello -g
阅读全文
摘要:1.管道,pipe()函数 实现最简单,实际为内核缓冲区的环形队列。 用于父子、兄弟等有血缘关系的进程间通信。 单向流动性,只能从管道读端读取,写端写入。 int fds[2]; pipe(fds);//传出参数,fd[0]为读端描述符,类似于stdin;fd[1]为写端描述符,类似于stdout 2.命名管道,fifo()函数 Linux基础文件类型。 可用于无血缘关系的进...
阅读全文
摘要:int pid = fork(); if (pid == -1 ) {//返回-1,说明fork失败 perror("fork"); exit(1); } else if (pid > 0) {//返回子进程pid,说明是父进程 } else if (pid == 0) {//返回0,说明是子进程
阅读全文
摘要:strlen --返回字符串长度,比如char* p="hello"; strlen(p)返回长度5strcmp --字符串比较函数,大于等于小于,分别返回1,0,-1strncmp --字符串比较函数,多个参数n,表示最多比较多个字符strcasecmp --忽略大小写比较函数strstr --字符串截取函数,后面str是截取的缩写。比如strstr("hello=world","=")返回字符
阅读全文
摘要:第一安装ctags软件1.安装ctags wget http://prdownloads.sourceforge.net/ctags/ctags-5.8.tar.gz 2.解压安装 tar -zxvf ctags-5.8.tar.gz cd ctags-5.83.安装 执行配置 ./configure --prefix=/usr/local/ctags 手动创建目录sudo mkdir /usr/
阅读全文
摘要:int flags = fcntl(fd, F_GETFD); flags |= FD_CLOEXEC; //设置执行exec系列函数时自动关闭fd文件描述符 fcntl(fd, F_SETFD, flags)
阅读全文
摘要:CPPFLAGS : 预处理器需要的选项 如:-I (大写i指定头文件路径)CFLAGS:编译的时候使用的参数 –Wall –g -cLDFLAGS :链接库使用的选项 –L -l (大写L指定动态库的路径,小写L指定动态库的名称)
阅读全文