- 博客(6)
- 收藏
- 关注
原创 使用系统调用操作USB设备
#include <stdio.h>#include <stdlib.h>#include <stdint.h>#include <string.h>#include <ctype.h>#include <unistd.h>#include <fcntl.h>#include <errno.h>#include <sys/ioctl.h>#include <pthread.h
2022-01-12 17:50:54 298
转载 Linux下调用system()函数导致的问题
前一段时间用了system()函数调用脚本启动另一个进程,发现两个问题: 1.执行killall命令杀新启进程时会连原进程一起kill掉. 2.原进程打开的侦听端口,如果新启动的进程不退出无法释放(socket资源未释放). 查看system()代码,原来system函数也是用的fork实现的,示例代码如下:#include int system(const char *cmd
2014-12-24 15:57:37 491
转载 动态内存分配与野指针
1、动态内存会被自动释放吗? 函数体内的局部变量在函数结束时自动消亡。很多人误以为下面的示例是正确的。理由是p是局部的指针变量,它消亡的时候会让它所指的动态内存一起完蛋。这是错觉! void Func(void){ char *p = (char *) malloc(100); // 动态内存会自动释放吗?} 我
2014-12-19 13:53:29 427 2
转载 指针参数是如何传递内存的?
如果函数的参数是一个指针,不要指望用该指针去申请动态内存。示例7-4-1中,Test函数的语句GetMemory(str, 200)并没有使str获得期望的内存,str依旧是NULL,为什么?void GetMemory(char *p, int num){ p = (char *)malloc(sizeof(char) * num);}
2014-12-19 13:51:03 507
转载 内存管理1
1内存分配方式内存分配方式有三种:(1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static变量。(2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集中,效率很高,但是分配的内存容量有限。(3)
2014-12-19 13:47:27 217
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人