
linux-app
kunkliu
good good study
展开
-
linux网络编程之用socket实现简单客户端和服务端的通信(基于TCP)
转载地址:https://blog.youkuaiyun.com/u011068702/article/details/56678997一、介绍基于TCP协议通过socket实现网络编程常用API1、读者如果不是很熟悉,可以先看我之前写的几篇博客,有socket,地址结构的理解,更加方便读者理解地址分别是:1)、http://blog.youkuaiyun.com/u011068702/article/details/5...转载 2018-06-28 19:41:54 · 19392 阅读 · 4 评论 -
linux 使用 drop_cache 手动释放缓存
os: ubuntu 16.04查看默认值# cat /proc/sys/vm/drop_caches0用法root@xxoo:~# free -m total used free shared buff/cache availableMem: 984 63 96 303 825 424Swap:转载 2020-10-20 15:37:27 · 1733 阅读 · 0 评论 -
linux c语言判断文件是否存在
一、access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作。 用法: #include <unistd.h>#include <fcntl.h>int access(const char *pathname, int mode); 参数: pathname: 需要测试的文件路径名。 mode: 需要测试的操作模式,可能值是一个或多个R_OK(可读?), W_OK(可写?), X_OK(可执行?) 或 F_OK(文件存在?)组.转载 2020-08-29 14:14:33 · 5148 阅读 · 0 评论 -
警告 warning: NUL charactor seen; rest of line ignored
将一个只用到标准库函数的 C 程序在 Windows 平台上用 VS 2010 编译,没有出任何问题。再将它放到 64 位 CentOS 6.8 下,用 GCC 编译它,接收到一大堆警告和错误报告,如下图: 其中大部分是“n...转载 2020-03-23 14:45:02 · 4831 阅读 · 0 评论 -
闲聊对齐异常(alignment fault)
闲话最近在ARM64环境中遇到了alignment fault,之前没怎么了解过,这次趁分析问题的机会,做了相关了解,还是比较有内容,特此闲聊。什么是对齐异常?简单来说,当CPU访问内存地址时,如果发现访问的地址是不对齐的,硬件(部分)就会自动触发对齐异常。对齐即要求被访问的地址满足其数据类型的位宽要求,比如要访问一个4字节int型的数据,但是提供的地址不是4字节对齐的,那就是不对齐了...转载 2019-11-28 17:17:57 · 5380 阅读 · 0 评论 -
Linux下如何在进程中获取虚拟地址对应的物理地址
*如果让你编写一个程序,来获取虚拟地址对应的物理地址。。你会试着操作MMU吗。。→_→*Linux文件目录中的/proc记录着当前...转载 2019-11-28 17:16:15 · 2422 阅读 · 0 评论 -
Tinyxml简单使用法
1、概要介绍一下:尝试了tinyxml,rapidxml,libxml2等3中第3方库,前两者相对较为轻量级,libxml2非常完善,强大。这是网上总结出来的优缺点:1、tinyxml当节点内容的空而使用GetText()方法时候会出错2、rapidxml编码问题不是特别好3、libxml2对内存释放要求较高,否则时常遇到core dump.TinyXML是一个开源的解析XML的...转载 2019-11-26 16:36:32 · 494 阅读 · 0 评论 -
使用TinyXML读写xml文件
1、TinyXML 引用网上的原话:TinyXML是目前非常流行的一款基于DOM模型的XML解析器,简单易用且小巧 玲珑,非常适合存储简单数据,配置文件,对象序列化等数据量不是很大的操作。支持对XML的读取和修改,不直接支持XPath,需要借助另一个相关的类库TinyXPath才可以支持XPath。 TinyXML源码是使...转载 2019-11-26 16:15:38 · 865 阅读 · 1 评论 -
pthread_join/pthread_exit的用法解析
官方说法:函数pthread_join用来等待一个线程的结束。函数原型为: extern int pthread_join __P ((pthread_t __th, void **__thread_return)); 第一个参数为被等待的线程标识符,第二个参数为一个用户定义的指针,它可以用来存储被等待线程的返回值。这个函数是一个线程阻塞的函数,调用它的线程将一直等待到被等待的线程结...转载 2019-10-22 14:41:37 · 422 阅读 · 0 评论 -
linux中pthread_join()与pthread_detach()详解
前言:1.linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。只有当你调用了pthread_join之后这些资源才会被释放。若是unjoinable状态的线程,这些资源在线程函数退出时或pthread_...转载 2019-10-22 14:21:48 · 180 阅读 · 0 评论 -
pthread_create用法
在转载别人文章之前,说一下pthread_create(); 创建线程返回值。正常情况下,创建成功则返回 0 ;如果创建失败 通常返回常见的错误返回代码为:EAGAIN#define EAGAIN 35 // Resource temporarily unavailable和EINVAL#define EINVAL 22 //I...转载 2019-10-22 13:56:12 · 1331 阅读 · 0 评论 -
gettid和pthread_self区别
1 线程ID获取方法linux下获取线程有两种方法:1)gettid或者类似gettid的方法 2)直接调用pthread_self()gettid 获取的是内核中线程ID,而pthread_self 是posix描述的线程ID。通过执行man手册,我们也能发现他们的区别:SYNOPSIS#include <sys/types.h>...转载 2019-10-22 11:32:22 · 582 阅读 · 0 评论 -
linux线程随笔-pthread_create函数
函数简介 pthread_create是UNIX环境创建线程函数头文件 #include<pthread.h>函数声明 int pthread_create(pthread_t*restrict tidp, constpthread_attr_t*restrict_attr,void*(*start_rtn)(void*),void...转载 2019-10-22 11:16:01 · 128 阅读 · 0 评论 -
Linux下开发-realloc
realloc(void *__ptr, size_t __size):更改已经配置的内存空间,即更改由malloc()函数分配的内存空间的大小。如果将分配的内存减少,realloc仅仅是改变索引的信息。如果是将分配的内存扩大,则有以下情况:1)如果当前内存段后面有足够的内存空间,则直接扩展这段内存空间,realloc()将返回原指针。2)如果当前内存段后面的空闲字节不够,那么...转载 2019-10-22 10:06:09 · 534 阅读 · 0 评论 -
用当前系统时间作为文件名创建文件
只要将获取的系统时间存入字符数组,就可以作为文件名创建文件了。关于获取系统时间的各种方法,详见我的另一篇文章C/C++ 获取当前系统时间(time_t和tm)清晰梳理下面给出几种常用方法的代码:【注意】文件名中不能含有 / \ : * ? " < > |方法一:使用sprintf()把格式化的时间数据写入字符数组中sprintf()函数头文件:#include <...转载 2019-10-14 16:04:26 · 2340 阅读 · 0 评论 -
system函数深度理解
转载地址:https://www.cnblogs.com/tdyizhen1314/p/4902560.html注:从其它地方转的非常好的一篇文章,值得深究! 这几天调程序(嵌入式linux),发现程序有时就莫名其妙的死掉,每次都定位在程序中不同的system()函数,直接在shell下输入system()函数中调用的命令也都一切正常.就没理这个bug,以为是其他的代码影响到这个,...转载 2019-01-24 09:58:13 · 7462 阅读 · 0 评论 -
linux系统调用system函数详解
转载地址:https://blog.youkuaiyun.com/sk983671939/article/details/797268541、system()函数功能简介int system(const char *command)system()函数调用/bin/sh来执行参数指定的命令,/bin/sh 一般是一个软连接,指向某个具体的shell,比如bash,-c选项是告诉shell从字符串co...转载 2019-01-24 10:02:47 · 2914 阅读 · 0 评论 -
编译程序加不加 -lpthread 的区别
转载地址:https://www.cnblogs.com/sky-heaven/p/6840693.html阅读目录 1. 对于动态链接的程序 2. 对于静态链接的程序 3. 符号版本的作用转自:http://www.cnblogs.com/Swartz/articles/3939382.html作者:Lokki 出处:http://www.cnblogs.com/Swart...转载 2019-01-14 10:58:36 · 960 阅读 · 0 评论 -
gcc -lpthread和gcc -pthread的区别
转载地址:https://blog.youkuaiyun.com/skylinethj/article/details/38569243在编译多线程程序时遇到了undefined reference to `pthread_create'在网上找了很多都说加上编译开关-lpthread但是问题没有解决,后来找到下面的一篇博文才知道问题所在... 在编译下面的代码时,碰到了undefin...转载 2019-01-14 11:14:17 · 2984 阅读 · 1 评论 -
动态库与静态库优缺点比较
转载地址: https://blog.youkuaiyun.com/sunshinewave/article/details/39155755我们在编写一个C语言程序的时候,经常会遇到好多重复或常用的部分,如果每次都重新编写固然是可以的,不过那样会大大降低工作效率,并且影响代码的可读性,更不利于后期的代码维护。我们可以把他们制作成相应的功能函数,使用时直接调用就会很方便,还可以进行后期的功能升级。 ...转载 2019-01-14 16:41:31 · 919 阅读 · 0 评论 -
fopen中w w+ wb区别
在C语言中,大家常用到fopen打开文件,准备进行写操作,再用fwrite把数据写入文件,最后用fclose关闭文件。如以下C代码:#include <stdio.h>char buf[10] = {10,10,10,10,10,10,10,10,10,10};FILE *fp = fopen("c:\\test.dat","w");fwrite(buf,1,10,fp...转载 2019-09-19 17:21:22 · 8141 阅读 · 1 评论 -
总结open与fopen的区别
对于这两个名字很类似的函数,对于很多初学者来说,不容易搞清楚它们有什么不同,只知道按照函数用法使用。如果能很好的区分两者,相信大家对于C语言和UNIX系统(包括LINUX)有更深入的了解。在网上查找了一些资料,但是感觉不够全面,一些答案只是从某个角度阐述,所以让人觉得,这个也对,那个也对。但到底谁的表述更正确呢?其实都是对的,只是解释的视角不同罢了。下面结合个人的理解做一些梳理。1....转载 2019-09-19 18:30:23 · 281 阅读 · 0 评论 -
Linux下getopt()函数的简单使用
转载地址:https://www.cnblogs.com/qingergege/p/5914218.html最近在弄Linux C编程,本科的时候没好好学啊,希望学弟学妹们引以为鉴。好了,虽然啰嗦了点,但确实是忠告。步入正题:我们的主角----getopt()函数。英雄不问出处,getopt()函数的出处就是unistd.h头文件(哈哈),写代码的时候千万不要忘记把他老人家incl...转载 2018-12-31 17:26:33 · 214 阅读 · 0 评论