
C/C++
文章平均质量分 56
记录Linux C/C++的一些使用
hrx-@@
Linux应用、Linux驱动、单片机、Android应用
展开
-
使用inotify监视文件后台运行收到 SIGTTIN 信号的原因及解决方案
当使用inotify监视文件变化时,如果进程在后台运行并试图从终端读取输入,那么它会收到SIGTTIN信号。为了避免这种情况,我们可以将进程放在前台运行,或者使用nohup命令将进程放在后台运行。这两种方法都可以避免进程收到SIGTTIN信号,并且可以顺利地监视文件变化。原创 2023-03-09 20:22:30 · 596 阅读 · 0 评论 -
Linux C 文件路径中获取文件名及路径
编程中有时会遇到需要把文件路径中的文件名或者路径提取出来的情况,发现了两个好用的函数记录一下。一、提取文件名头文件:#include <libgen.h>**函数:**char *basename(char *path);注:这个函数不会修改传入的 path 内容。二、提取路径头文件:#include <libgen.h>**函数:**char *dirname(char *path);注:这个函数会修改传入的 path 内容,如果不像path被改变需要重新申请一个原创 2022-01-18 13:53:46 · 5976 阅读 · 0 评论 -
mips 交叉编译gdb-8.3
一、环境:PC操作系统:Ubuntu 14.04 LTSmips gcc 版本:gcc version 4.9.2 (Buildroot 2015.05)要编译的gdb版本:gdb-8.3GDB源码下载地址:http://ftp.gnu.org/gnu/gdb/原创 2021-08-05 17:36:35 · 1088 阅读 · 0 评论 -
Linux下 gdb-10.2 源码编译
一、环境:PC操作系统:Ubuntu 21.04 LTSGCC 版本:gcc version 10.3.0 (Ubuntu 10.3.0-1ubuntu1)要编译的GDB版本:gdb-10.2GDB源码下载地址:http://ftp.gnu.org/gnu/gdb/二、配置及编译1、下载后解压2、配置configure为了不搞乱源码,新建一个 build 文件夹用于配置及编译。这里我配置了编译输出的目录为 build目录下的output,我不打算把系统的gdb替换掉,所以最后make原创 2021-08-05 14:47:53 · 5400 阅读 · 1 评论 -
Linux C 通过指针从函数获取变量 字符串 指针
在平常的开发中经常会碰到指针的使用,例如从通过指针从函数中取出一些变量,或者是拷贝出字符串,或者是直接获取指针。最经常混乱的就是获取指针,虽然每次都能解决,但每次开发时都会耽搁一些时间,所以好好整理下整明白很重要。1、测试代码主要实现了通过指针获取 普通变量、字符串、指针的简单过程。#include <stdio.h>#include <string.h>#include <stdlib.h>static char s_str[16];static原创 2020-09-06 13:00:05 · 770 阅读 · 0 评论 -
Linux C 十进制和BCD码互转
#define BCD_TO_DEC(x) ((x >> 4) * 10 + (x & 0x0f)) /* BCD码转十进制 */#define DEC_TO_BCD(x) (((x / 10) << 4) + (x % 10)) /* 是进制转BCD码...原创 2020-02-26 17:18:22 · 622 阅读 · 0 评论 -
Linux C 时间函数clock_gettime()的使用
函数: int clock_gettime(clockid_t clk_id, struct timespec *tp);clockid_t: 用于指定计时时钟的类型,有以下几种类型:CLOCK_REALTIME: 系统实时时间,从Epoch计时,可被设置更改。CLOCK_MONOTONIC: 系统运行时间,从系统启动时开始计时,系统休眠时不再计时(NTP与硬件时钟有问题时会影响其频率,没有...原创 2019-05-09 17:24:00 · 16492 阅读 · 1 评论 -
Linux C 获取当前日期时间的封装
使用gettimeofday可以获取到从epoch(1970-1-1 00:00:00)开始的年月日时分秒,但是有时候希望获取到精确到微秒的时间,所以将localtime_r封装进去用于获取微秒,具体代码如下。#include <stdio.h>#include <string.h>#include <time.h>#include <sys/ti...原创 2019-05-09 16:12:54 · 1299 阅读 · 0 评论 -
Linux C 十进制和十六进制互转
最近有个功能需要用到颜色值的十进制值和十六进制字符串互转,查了一些资料实现后记录下。上代码:#include <stdio.h>#include <string.h>#include <stdlib.h>int main (){ int initial; char hex[16]; char *str; int decimal; ini...原创 2018-09-26 09:41:07 · 6225 阅读 · 0 评论 -
Linux C 使用二分法查找指定值在数组中最邻近值的索引
最近需要实现在一个递增或递减数组中查找与指定的数值最临近的数值的功能,记录一下。 大致意思有一个数组array = [0,1,2,3],那我现在有一个数值是1.6,那么1.6与数组中的2最为接近,则返回索引为2。例示代码如下:#include <stdio.h>#include <math.h>#define ARRAY_NUM 8 ...原创 2018-08-15 19:51:17 · 1502 阅读 · 1 评论 -
Linux C 获取系统启动经过时间
记录一下获取从Linux系统启动开始计算的时间的方法。在ubuntu环境下测试可行。#include <stdio.h>#include <time.h>/************************************************************************ ** 函数名: get_sys_runtime ...原创 2018-06-14 19:22:00 · 5468 阅读 · 0 评论 -
Linux C —— fopen、fread、fwrite函数的使用
例子:#include <stdio.h>#include <string.h>/* 写文件测试函数 */static void fwrite_demo(){ FILE *fp; /* 文件标识符 */ char str[64]; /* 字符串 */ int str_len; ...原创 2018-04-03 11:43:27 · 7572 阅读 · 1 评论 -
Linux C —— select()函数使用
本文记录的是在Linux下select函数的使用。所需头文件: sys/time.h作用: select函数是用来监视一个或多个文件句柄的状态变化的,可阻塞也可不阻塞。定义: int select(int fd_max, fd_set *readfds, fd_set *writefds, fd_set *exceptfds, struct timeval *timeout)...原创 2018-03-13 19:22:38 · 11867 阅读 · 2 评论 -
Linux C 创建多级目录
在JAVA中创建文件有两个方法: mkdirs:可以创建指定目录及自动创建父级目录。 mkdir:可以创建指定目录,父级目录必须存在。而在C中只有一个mkdir函数,效果与java的mkdir方法是相同的,感觉并不完美,所以决定写一个能够自动创建不存在的父级目录的函数。测试程序如下:在linux下运行是没有问题的#include &lt;stdio.h&gt;#include &...原创 2017-12-14 14:17:39 · 4686 阅读 · 0 评论