随笔分类 -  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 阅读全文
posted @ 2024-07-16 19:23 yongfengnice 阅读(59) 评论(0) 推荐(0) 编辑
摘要:window下使用vscode和cmake开发编译cpp代码 1. 先准备cpp编译环境 还是要先使用vscode和mingw搭建好cpp开发环境,因为cmake不是一个编译工具,它只不过是根据CMakeLists.txt文件生成Makefile文件,Makefile文件再通过make规则使用gcc 阅读全文
posted @ 2024-04-25 10:42 yongfengnice 阅读(640) 评论(0) 推荐(0) 编辑
摘要:window下使用vscode和mingw搭建cpp开发环境 1. 下载安装MinGW MinGW是一款在Windows平台上运行的GNU工具集,它提供了一套构建应用程序的开发工具,包括GNU C/C++编译器、GDB调试器、GNU二进制工具等。它可以用于开发Windows应用程序,也可以用于开发跨 阅读全文
posted @ 2024-04-24 17:36 yongfengnice 阅读(593) 评论(0) 推荐(0) 编辑
摘要:以下是fun.sh文件 #!/bin/bash sed -i 's/\r//' $0 #替换本文件的\r为空,因为我是在window下编写linux上执行的 function max(){ if [ $# -ne 2 ];then echo "必须两个参数,调用方法:max p1 p2" else 阅读全文
posted @ 2021-08-13 17:49 yongfengnice 阅读(42) 评论(0) 推荐(0) 编辑
摘要:Ubuntu 安装man手册 sudo apt-get install manpages-dev sudo apt-get install manpages-posix-dev 阅读全文
posted @ 2021-07-20 15:16 yongfengnice 阅读(195) 评论(0) 推荐(0) 编辑
摘要:#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 阅读全文
posted @ 2019-12-29 22:44 yongfengnice 阅读(1227) 评论(0) 推荐(0) 编辑
摘要:1. 线程概念 Linux里的线程,也叫轻量级进程(light weight process),本质上是进程。 Linux早期是没有线程的,后来的线程是借助进程实现的。线程、进程的核心都是调用系统的clone方法实现。 线程和进程的区别:(说明:PCB即进程控制块) 进程拥有PCB,用于独立的地址空 阅读全文
posted @ 2019-12-05 00:05 yongfengnice 阅读(722) 评论(0) 推荐(0) 编辑
摘要:void test_daemond() { //1.fork()子进程 //2.sid()新建新会话,脱离终端 //3.chdir()切换工作目录,防止占用可卸载的文件系统 //4.umask(0)重置文件权限掩码,防止继承父进程的文件屏蔽字拒绝某些权限 //5.close(fd)关闭打开的继承父进 阅读全文
posted @ 2019-11-30 00:10 yongfengnice 阅读(327) 评论(0) 推荐(0) 编辑
摘要:1.信号特性: 简单但不可靠,不能携带大量信息,特定条件才触发。 包括软件中断和硬件中断。 软件中断如:调用abort、raise,alarm,setitimer等函数触发的中断 硬件中断如:除0导致的SIGFPE(浮点数例外),非法访问内容导致的SIGSEGV(段错误),非法内容对齐等导致的总线错误(SIGBUS) 等等2.信号三要素: 1)编号:信号编号范围是1~64。1~31为常规信号编号。 阅读全文
posted @ 2019-11-28 21:22 yongfengnice 阅读(978) 评论(0) 推荐(0) 编辑
摘要:注意:编译生成可执行文件时之前必须加参数 -g,比如:gcc hello.c -o hello -g 阅读全文
posted @ 2019-11-21 00:05 yongfengnice 阅读(445) 评论(0) 推荐(0) 编辑
摘要:1.管道,pipe()函数 实现最简单,实际为内核缓冲区的环形队列。 用于父子、兄弟等有血缘关系的进程间通信。 单向流动性,只能从管道读端读取,写端写入。 int fds[2]; pipe(fds);//传出参数,fd[0]为读端描述符,类似于stdin;fd[1]为写端描述符,类似于stdout 2.命名管道,fifo()函数 Linux基础文件类型。 可用于无血缘关系的进... 阅读全文
posted @ 2019-11-18 23:53 yongfengnice 阅读(1730) 评论(0) 推荐(0) 编辑
摘要:int pid = fork(); if (pid == -1 ) {//返回-1,说明fork失败 perror("fork"); exit(1); } else if (pid > 0) {//返回子进程pid,说明是父进程 } else if (pid == 0) {//返回0,说明是子进程 阅读全文
posted @ 2019-11-16 22:27 yongfengnice 阅读(1079) 评论(0) 推荐(0) 编辑
摘要:strlen --返回字符串长度,比如char* p="hello"; strlen(p)返回长度5strcmp --字符串比较函数,大于等于小于,分别返回1,0,-1strncmp --字符串比较函数,多个参数n,表示最多比较多个字符strcasecmp --忽略大小写比较函数strstr --字符串截取函数,后面str是截取的缩写。比如strstr("hello=world","=")返回字符 阅读全文
posted @ 2019-11-07 23:33 yongfengnice 阅读(2974) 评论(0) 推荐(0) 编辑
摘要:第一安装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/ 阅读全文
posted @ 2019-11-07 00:25 yongfengnice 阅读(759) 评论(0) 推荐(0) 编辑
摘要:int flags = fcntl(fd, F_GETFD); flags |= FD_CLOEXEC; //设置执行exec系列函数时自动关闭fd文件描述符 fcntl(fd, F_SETFD, flags) 阅读全文
posted @ 2019-11-06 22:57 yongfengnice 阅读(1575) 评论(0) 推荐(0) 编辑
摘要:CPPFLAGS : 预处理器需要的选项 如:-I (大写i指定头文件路径)CFLAGS:编译的时候使用的参数 –Wall –g -cLDFLAGS :链接库使用的选项 –L -l (大写L指定动态库的路径,小写L指定动态库的名称) 阅读全文
posted @ 2019-11-03 22:38 yongfengnice 阅读(9502) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示