linux编程
文章平均质量分 58
徒手写代码
不要在需求明确的时候写代码
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
优秀的程序设计者这样设计传送的报文
面对一个人的大型 C/C++程序时,只看其对 struct 的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的 C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用 struct,怎样用struct 是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信控制、嵌入式系统的 ...原创 2019-01-31 16:56:50 · 513 阅读 · 0 评论 -
线程池
#ifndef THREAD_POOL_H#define THREAD_POOL_H#include <sched.h> /* for sched_setaffinity() */#include <sys/syscall.h> /* for SYS_gettid() */#include <unistd.h> ...原创 2019-06-12 15:01:12 · 201 阅读 · 0 评论 -
如何让udhcpc占用更少的内存?
这个问题的表面现象是用system调用的方式执行udhcpc会失败。解释:由于system是通过fork实现的,而子进程会复制父进程的VM空间,当父进程占用较多VM空间,很容易导致system调用失败。其本质是子进程分配VM空间失败导致的。解决方法:执行:echo 1 > /proc/sys/vm/overcommit_memory即可。更好的解决办法是不使用system调用方法,而...转载 2019-05-13 14:41:21 · 670 阅读 · 0 评论 -
gdb用法小结
gdb用法小结--学习Linux程序的开始 一、初始化 输入gdb进入gdb调试环境。或者直接输入gdb + progfile来加载文件。 注意该文件是使用gcc(或g++)编译得到的。为了使 gdb 正常工作, 必须 使你的程序在编译时包含调试信息,编译时必须使用-g参数来。 或者进入gdb环境后,通过命令file + ...转载 2019-05-14 11:43:22 · 561 阅读 · 0 评论 -
cmake 学习笔记(一)
最大的Qt4程序群(KDE4)采用cmake作为构建系统Qt4的python绑定(pyside)采用了cmake作为构建系统开源的图像处理库 opencv 采用cmake 作为构建系统...看来不学习一下cmake是不行了,一点一点来吧,找个最简单的C程序,慢慢复杂化,试试看:例子一单个源文件 main.c例子二==>分解成多个 main.c hello.h hello.c...转载 2019-04-03 18:44:02 · 187 阅读 · 0 评论 -
c/c++ 内存管理
这是我刚开始学编程里整理的一篇总结,主要是来源一本叫《高质量c/c++编程》的书,很多年过去了,重新复习一下。1、malloc()malloc()函数用来分配内存:将总共需要的字节数作为参数传递给该函数,返回值是指向最新分配的内存的指针,而如果内存没有分配好,则返回值是NULL。malloc()的使用技术:some_type*pointer;pointer=malloc(...转载 2019-03-26 17:22:34 · 201 阅读 · 0 评论 -
音视频大牛雷霄骅
https://blog.youkuaiyun.com/leixiaohua1020https://www.zhihu.com/question/49211380https://www.bilibili.com/video/av9927626/?share_source=weixin&ts=1522201256&share_medium=iphone&bbid=96e3c3e5...转载 2019-02-25 20:36:33 · 10505 阅读 · 1 评论 -
从Linux程序中执行shell(程序、脚本)并获得输出结果
Contents1. 前言 2. 使用临时文件 3. 使用匿名管道 4. 使用popen 5. 小结1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令...转载 2019-02-15 11:23:49 · 13734 阅读 · 0 评论 -
使用gdb调试共享库代码
相信有不少的同志调试过包含共享库代码的程序,这个时候最为头疼的就是不能进行单步跟踪(当然是在你不知道如何解决的情况下^_^),本文根据一个实例来讲述如何来解决这个问题。首先来看我们的程序,包含两个文件:dyn.c, main.c,其中dyn.c被编译成一个共享库libdyn.so,在链接的时候要用到它。有一点必须声明,就是你的共享库代码必须是带有调试信息的(比如使用 -g选项)。 $cat...转载 2019-01-16 16:36:07 · 856 阅读 · 0 评论 -
Linux中error while loading shared libraries错误解决办法
默认情况下,编译器只会使用/lib和/usr/lib这两个目录下的库文件,通常通过源码包进行安装时,如果不指定--prefix,会将库安装在/usr/local/lib目录下;当运行程序需要链接动态库时,提示找不到相关的.so库,会报错。也就是说,/usr/local/lib目录不在系统默认的库搜索目录中,需要将目录加进去。 1、首先打开/etc/ld.so.conf文件 2、加入...转载 2019-01-16 15:11:13 · 688 阅读 · 0 评论 -
要是面试官再问你智能指针的问题,就拿这篇文章“盘他”!!!
前一段时间,有不少朋友问我关于智能指针的问题,并且反映经常会在面试中被面试官问到,所以今天小豆君就来讲讲我对智能指针的理解,希望能对大家有所帮助既然讲智能指针,我们就先来看看它为什么会出现。1 传统指针存在的问题刚学C++的朋友,要数最令人头疼的问题莫过于指针了。当你在堆上创建了一个对象时,系统就把这个对象的生命期完全交给了你,当用完之后,系统并不会回收资源,而是需要你来释放它。...转载 2019-07-20 11:30:31 · 413 阅读 · 0 评论
分享