【linux应用编程】
loe
专注linux
展开
-
linux adb设备不识别
mxg@mxg:~/workSpace$ adb devicesdaemon not running. starting it now on port 5037 *daemon started successfully *List of devices attached??? no permissions这种没权限很奇怪,我在 /etc下是有定义的:mxg@mxg:/etc/udev/rules.d$ cat /etc/udev/rules.d/70-android.rulesUBS.原创 2021-08-19 09:23:56 · 243 阅读 · 0 评论 -
Makefile中判断文件是否存在
Makefile中判断文件是否存在:exist = $(shell if [ -f $(file) ]; then echo “master conf file exist”; fi;)all:$(if $(exist ) , cp -f $(file) $@ , )原创 2021-03-12 11:15:04 · 1418 阅读 · 0 评论 -
关于信号量 sem系列函数
#include<semaphore.h> int sem_wait(sem_t*sem); intsem_trywait(sem_t *sem); intsem_timedwait(sem_t *sem, const struct timespec *abs_timeout); 与 -lrt 或 -pthread 一起链接。glibc 需要特性测试宏(参看 feature_...原创 2018-08-30 20:25:47 · 6501 阅读 · 0 评论 -
Linux多线程编程详细解析----条件变量 pthread_cond_t
Linux操作系统下的多线程编程详细解析—-条件变量1.初始化条件变量pthread_cond_init#include <pthread.h>int pthread_cond_init(pthread_cond_t *cv, const pthread_condattr_t *cattr);返回值:函数成功返回0;任何其他返回值都表示错误初始化一个条件变量。当参数...转载 2018-08-30 22:23:56 · 405 阅读 · 0 评论 -
Linux中pthread_detach()线程注意
一、创建分离线程有两种方式创建分离线程:(1)在线程创建时将其属性设为分离状态(detached);(2)在线程创建后将其属性设为分离的(detached)。二、分离线程的作用由系统来回收线程所占用资源。三、实例#include <stdlib.h>#include <string.h>#include <unistd.h>#i...原创 2018-09-01 10:34:02 · 1159 阅读 · 0 评论 -
通俗理解Linux上的硬链接和软链接
假设目录“~”下面不存在a, b, c这样的文件,在该目录下面执行如下命令:题目步骤$ echo hello &gt; a$ ln a b$ ln -s a c$ rm a$ echo world &gt; a请问接下来执行“cat b”输出什么?执行"cat c”输出什么?解释为什么!详细论述其中关于inode等的变化■基本概念一.文件在linux上的构成1.inode...原创 2018-09-22 10:03:40 · 892 阅读 · 0 评论 -
unlink漏洞
http://wonderkun.cc/index.html/?p=651原创 2018-11-02 13:23:51 · 596 阅读 · 0 评论 -
Linux下编程注意---32位系统移植到64位系统
#include &lt;stdio.h&gt;#include &lt;stdlib.h&gt;#include &lt;pthread.h&gt;#include &lt;unistd.h&gt;#include &lt;malloc.h&gt; pthread_t thread_id[2];unsigned int c;vo原创 2018-11-20 09:41:28 · 1210 阅读 · 0 评论 -
深入Linux编程系列前言
本系列主要记载一些Linux应用编程实际项目中需要注意的事情,涉及的范围包括:一. Linux应用工程师必要的一些内核知识,以及glibc的知识1.1 什么是虚拟内存VMA,mmu,为什么每个程序都是4G空间,OS是如何做的(带图)1.2 fork 到底是怎么回事儿,如何在OS上运行的(带图)1.3 线程到底是什么,为什么应用层有线程的概念,内核层没有,线程与进程到底是什么关系(带图)1...原创 2018-11-20 11:00:07 · 382 阅读 · 0 评论 -
关于Makefile的编译简洁
在编写大型项目的时候,往往编译log是非常多的,让人看着不舒服比如说一个简单的helloWorld程序:#include &lt;stdio.h&gt;int main(){ printf("hello world\n"); return 0;}Makefile也比较简单:gcc -o 11 1.c所以 make 执行后,输出: gcc -o 11 1.c,如果...原创 2019-01-23 09:19:26 · 344 阅读 · 0 评论 -
关于字符串的反转问题
有时候的需求比较奇怪,下面直接贴出代码,用到的技术点有两个1.字符串反转,即交换位置的方法用异或2.格式化输出,要求每4个字节用"-"隔开#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct _Data { char rawData[5][4]; char...原创 2019-01-29 09:38:04 · 232 阅读 · 0 评论 -
可重入和不可重入
重入一般可以理解为一个函数在同时多次调用,例如操作系统在进程调度过程中,或者单片机、处理器等的中断的时候会发生重入的现象。一般浮点运算都是由专门的硬件来完成,举个例子假设有个硬件寄存器名字叫做FLOAT,用来计算和存放浮点数的中间运算结果假设有这么个函数void fun(){//...这个函数对FLOAT寄存器进行操作}假如第一次执行,有个对浮点数操作运算的结果临时存在FLOAT寄存转载 2017-08-29 15:11:35 · 750 阅读 · 0 评论 -
nfs挂载相关问题
开发板与PC上的虚拟机挂载,一般经常使用的命令是: mount -t nfs -o nolock 192.168.0.182:/exports /mnt 即将 PC上的/exports 挂载到 开发板的 /mnt目录下 多年都是这么用来着,没有出现过什么问题后来换了个开发板后,依旧用这个命令挂载,成功后拷贝文件 cp -rf /mnt/xx ~/ 但是出现了 nfs: server 19原创 2017-04-02 11:23:54 · 803 阅读 · 0 评论 -
局域网内使用ntp服务器同步时间
局域网内使用ntp服务器同步时间solaris 10中已自带ntp服务的软件 可使用:pkginfo | grep ntp 查看# pkginfo | grep ntpsystem SUNWntpr NTP, (Root)system SUNWntpu NTP,转载 2014-03-04 22:04:57 · 5838 阅读 · 0 评论 -
gethostbyname 函数与getservbyname函数
在linux环境下,如果连接网络 gethostbyname会连接DNS服务器(具体的服务器根据配置而定),DNS服务器会反回传入域名所对应的IP地址,如果是两台嵌入式设备连接(也是linux环境),那么此函数会在/etc/hosts/ 当前目录下寻找输入域名所对应的路径,所以,在两台设备进行通信之前,必须要在此文件下设置要连接的域名以及对应的IP地址原创 2013-10-20 09:19:58 · 3697 阅读 · 0 评论 -
win7与VMware ubuntu虚拟机实现文件共享(最后一定要装open-vm-dkms插件)
一般来说,由于一些特殊的需要,会在Win7系统中利用虚拟机(VMware)安装ubuntu虚拟环境,使得不用重启就可以同时使用两个系统。但是想把在虚拟机ubuntu中编辑的文件可以同时被Win7中的程序使用,同时又不想利用两个系统的QQ或者U盘互拷,就需要能将文件在虚拟机和Win7(在这里以Win7为例,WinXP操作一样)下实现互传。有一种方法,就是通过VMware的共享文件夹来实现虚拟机Ubu转载 2014-05-05 13:20:59 · 1530 阅读 · 0 评论 -
探秘fstab文件里面特殊分区
原文地址:http://linuxguest.blog.51cto.com/195664/522621估计大家平时对/etc/fstab文件已经很熟悉了,在启动流程中,紧接着/etc/rc.sysinit文件后被读取的。主要功能就是在系统启动的时候自动挂载分区,比如/分区,就是必须再启动时被挂载的。如果fstab存在问题,系统可能无法成功启动。 fstab文件主要分成6列转载 2014-06-23 16:04:28 · 882 阅读 · 0 评论 -
gethostname
unbantu中调用gethostname获得主机名,通过修改文件/etc/hostname文件来修改主机名原创 2014-07-28 11:29:28 · 1136 阅读 · 0 评论 -
linux下的超级服务器inetd
inetd服务是linux开机初始化由rc程序启动的一项守护进程,它通过监听端口来启动各项服务,流程 tcp/udp服务---->(5000端口来信)---->inted发现有来信----->启动相应的服务程序, 也就是说inted服务器充当一个功能就是创建socket服务端的前半段,即创建socket---->bind(端口)---->监听---->accept(接受信号),当来一个此端口的请求原创 2014-09-20 06:52:17 · 4180 阅读 · 0 评论 -
Linux下的动态库的编译方法
动态共享库的工作方式与静态链接库不同。对于每个使用静态链接库的应用程序而言,在应用程序中都存在着静态链接库拷贝。但是动态共享库却不是这样的,动态共享库是被所有使用它的应用程序共享的,无论调用一个动态共享库的进程有多少,系统中始终只运行着一个动态共享库,这里动态共享库中“共享”的含义。至于“动态”,则主要强调的是链接发生在什么阶段。对于静态链接库而言,链接过程发生在编译阶段,操作系统在加载程序时不再原创 2014-09-20 08:42:07 · 2078 阅读 · 0 评论 -
GPL、LGPL、BSD、Apache 2.0协议
GPL:前段时间做webservice,查了一下用gsoap这个软件,比较坑的是这个软件遵守GPL协议,就是说凡是用到gsoap里面的任何接口进行应用开发,或者用到里面的源代码,你的程序必须要公开,所以在商业上用比较头疼,需要联系他们。。(花钱)LGPL:就是开发自己的程序用到它的接口没事儿,不用公布自己代码,但是如果对接口里面的源代码进行修改的话,那么你的公开你修改的那部分代码(并且...原创 2014-08-18 08:56:28 · 1264 阅读 · 0 评论 -
openwrt之应用程序ipk
关于openwrt编写应用程序, 这个网上有很多的文章,原创 2016-11-06 17:15:51 · 6120 阅读 · 1 评论 -
buildroot之交叉编译环境
前言: 为了搭建交叉编译环境,查了很多的方法,有自己搭建的(高手),有的用cross-ng工具的等等,最后查到了buildroot这个工具,最后为啥选择这个工具的原因是buildroot不仅能搭建交叉编译环境,而且还能编译内核,根文件系统,可见功能的强大,但是第一次用这个工具还是出现各种各样的问题,所以这回要详细的说明buildroot搭建交叉编译器的使用方法并且解释出现的问题,虽然操作原创 2016-11-06 15:11:43 · 10389 阅读 · 0 评论 -
关闭socket
问题现象:客户端linux A,服务端java B A向B发信息, B必须在10秒内返信,若没返信 ,A timeOut时间到 则关闭socket通信, 但是当A timeOut关闭socket后, B还能够对此socket进行写(理论上A关闭socket后, B对此socket写入应该报错)原因: 客户端A关闭socket 用的close函数 close—–关闭本进程的socket i原创 2017-03-29 14:57:17 · 3995 阅读 · 0 评论 -
手动释放linux内存cache和脚本定时释放
总有很多朋友对于Linux的内存管理有疑问,之前一篇Linux下的内存管理方式似乎也没能清除大家的疑虑。而在新版核心中,似乎对这个问题提供了新的解决方法,特转出来给大家参考一下。最后,还附上我对这方法的意见,欢迎各位一同讨论。当在Linux下频繁存取文件后,物理内存会很快被用光,当程序结束后,内存不会被正常释放,而是一直作为caching。这个问题,貌似有不少人在问,不过都没有看到有什么很转载 2017-03-31 13:28:25 · 2014 阅读 · 0 评论 -
线程池技术个人理解以及c语言的简单实现
这几天闲来无事,网上无意中看到了关于线程池的东西,发现挺有意思的,找了挺多资料,研究一下,线程池技术,个人理解,线程池是个集合(概念上的,当然是线程的集合),假设这个集合中有3个线程A , B, C 这三个线程初始化的时候就是等待的状态,等待任务的到来,假设有任务1, 2, 3, 4, 5(任务处理的内容是一样的),线程池会怎么处理呢①:A会处理1任务(任务其实就是函数),B会处理2任务,C处原创 2013-09-14 22:06:37 · 3049 阅读 · 2 评论