标签:
阅读通信设备监控程序的一些杂记,不舍得扔,记录下来!
_exit()与exit的区别:
头文件:
exit:#include<stdlib.h>
_exit:#include<unistd.h>
_exit()函数:直接使进程停止运行,清除其使用的内存空间,并销毁其在内核中的各种数据结构;
exit()函数则在这些基础上作了一些包装,在执行退出之前加了若干道工序。
exit()函数与_exit()函数最大的区别就在于 exit()函数在调用_exit() 系统调用之前要检查文件的打开情况,把文件缓冲区中的内容写回文件。
exit(0)表示进程正常退出,不为0表示异常退出。
strlen()计算字符数组的字符数,以"\0"为结束判断,不计算为‘\0‘的数组元素。
而sizeof计算数据(包括数组、变量、类型、结构体等)所占内存空间,用字节数表示。
char str[20]="0123456789";
int a=strlen(str); //a=10;
int b=sizeof(str); //而b=20;
int *p;sizof(p)的值是4.
setbuf(stdout,NULL);禁止标准输出的缓冲
#include <iostream> #include<fstream> int main(int argc, char* argv[]) { char* outbuf = new char [100]; setbuf(stdout,outbuf);//将输出流绑定到outbuf上 puts("helloworld\n");//内容输入到outbuf内 //setbuf(stdout,NULL);//如果启用这行代码,输出流恢复原来的状态,puts输出到控制台 delete[] outbuf; system("pause"); return 0; }
sed -i ‘/^0x0102=/r log.ini‘ Desktop/Release/app/config/dev/A09B4000/repparamsconf.ini
这个命令可以直接在原来的文件下面添加一行
① char *strcpy(s,ct)//将字符串包括\0复制到字符串s中,并返回s。
② void *memset(void*s,int ch ,size_t n)//将s中的前n个字节用ch代替并返回s。作用:将一段内存块中填充某个给定的值
,常用于对较大的结构体和数组进行清零操作。如: memset(keyValue, 0, sizeof(keyValue));//将数组清零。
③fork()
④execl(ProgramFile, ProgramFile, "", NULL)
fork的作用是根据一个现有的进程复制出一个新进程,原来的进程称为父进程(Parent Process),新进程称为子进程(Child
Process)。在Shell下输入命令可以运行一个程序,是因为Shell进程在读取用户输入的命令之后会调用fork复制出一个新的
Shell进程,然后新的Shell进程调用exec执行新的程序。
⑤exit(EXIT_FAILURE);
⑥sprintf( ABuff, "%s/%s%s", s_Path, MODULE_NAME_SOFT_DOG, FILE_POSTFIX_CONFIG );
⑦pthread_t pthread_self(void);
函数作用:获得线程自身的ID。pthread_t的类型为unsigned long int,所以在打印的时候要使用%lu方式,否则将产生神奇的结果
⑧ // 创建消息队列
s_ctrlQueueId = msgget(s_ctrlQueueKey, IPC_CREAT | 0666);
标签:
原文地址:http://blog.csdn.net/eliot_shao/article/details/44198507