![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux函数
JIANJIANJIAN1111
喜欢电子的人
展开
-
Linux wait()
Linux中wait()函数编程过程中,有时需要让一个进程等待另一个进程,最常见的是父进程等待自己的子进程,或者父进程回收自己的子进程资源包括僵尸进程。这里简单介绍一下系统调用函数:wait()函数原型是#include <sys/types.h>#include <wait.h>int wait(int *status)函数功能是:父进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成.转载 2020-12-12 13:57:41 · 198 阅读 · 0 评论 -
linux %02X 代表的意思
1.X代表16进制输出2.02代表不足两位前面补零,超过2位不影响例子:sprintf(data,"%02X",123) 输出123sprintf(data,"%02X",1) 输出01原创 2020-11-18 16:22:21 · 769 阅读 · 0 评论 -
Linux 停止符号
到\0结束这个也是C语言字符串结束的约定比如printf("%s", "abcde");这里的abcde 结束的位置就有一个隐藏的\0而如果printf("%s", "abc\0def");只会输出abc原创 2020-08-31 13:20:10 · 669 阅读 · 0 评论 -
查看两个字符串str1 和 str2相差几个字符
1.判断str1 和 str2相差几个字符,让两个字符相减2.记住不能让str1和str2直接相减,这样得出的是两个指针的相减,两个指针的起始位置不一样所以不能直接相减,必须在同一个指针才能相减。strstr(str1 , str2)可以求出str2字符串在str1中的出现的地址。char* str1 = "ABCDE.txt";char* str2 = ".txt";char* str3 =NULL;int str4 =0;//先求出str2第一次出现在str1的位置的指针,不可以直接原创 2020-08-10 16:24:49 · 868 阅读 · 0 评论 -
打开文件出现TOO many opon file
一、产生原因too many open files是Linux系统中常见的错误,从字面意思上看就是说程序打开的文件数过多,不过这里的files不单是文件的意思,也包括打开的通讯链接(比如socket),正在监听的端口等等,所以有时候也可以叫做句柄(handle),这个错误通常也可以叫做句柄数超出系统限制。引起的原因就是进程在某个时刻打开了超过系统限制的文件数量以及通讯链接数,通过命令ulimit -a可以查看当前系统设置的最大句柄数是多少:open files那一行就代表系统目前允许单个进程打开.转载 2020-07-28 20:49:32 · 227 阅读 · 0 评论 -
在字符串后加“\0“都有什么作用
1.可以在使用strlen()时候,可以得到字符串的长度,"\0"表示终止符,当自己写个字符串的时候比如:string AB= "about";当在AB后加上”\0“时候可以用strlen()函数求出字符串长度。原创 2020-07-24 17:09:02 · 1526 阅读 · 0 评论 -
找不到头文件,很奇怪
问题:在重构一个工程,架构都搭建好啦,代码也填的差不多啦,写完MAKEFILE,make下发现竟然找不到头文件,当时没当回事,以为没有添加好,但是我重头看下工程,头文件已经包含,没有问题,后来又查看库文件,也没问题,一切都没问题。分析:仔细查看问提示,怀疑是头文件顺序问题,把mqtt.h文件,放到#include "iot_export.h" #include "iot_import.h"后面,然后保存make,解决问题。...原创 2020-06-09 11:10:07 · 849 阅读 · 0 评论 -
用man pthread没有相应的解释
原因:需要安装sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev安装成功后 man -k pthread 可以显示出所以的pthread相关的函数原创 2020-05-27 19:33:32 · 392 阅读 · 0 评论 -
解释下在指针数组中为什么不用加指针运算符* 就可以打印出字符
1.如下实例:#include <stdio.h>int main(int argc ,char* argv[]){ char* num[2]={"test","num"}; whicle(1) { printf("the num[0] is %s",num[0]); }}运行程序输出:the num[0] is tes...原创 2020-04-29 16:13:33 · 2875 阅读 · 3 评论 -
查看printf()执行效率
1.编写一个测试文件#inciude <stdio.h>#include <stdlib.h>int main(){ int num=0; while(num<100000) { printf("num is %d\r\n",num); }}2.然后编译运行root@ubuntu:/home/c...原创 2020-04-28 15:47:44 · 669 阅读 · 0 评论 -
Linux C 编程命令后加分号; 和代码语句后加分号;
1.在终端命令加入分号,例如:ls;pwd代表这连个命令连续执行,先执行ls命令后再执行pwd,";"也就是代表链接作用。ls;pwd2.再代码后多加几个分号“;”,例如:int main(){ for(int i=0;i<100;i++) { ;; //表示空语句,没有什么影响。 }}...原创 2020-04-26 11:14:04 · 578 阅读 · 0 评论 -
linux pause()函数使用
pause()函数表示让进程或者线程进入休眠状态,直到进程或线程被杀死或者调用信号捕捉函数。如下举例:int main(){ for(;;) { pause(); }}...原创 2020-04-23 15:00:22 · 799 阅读 · 0 评论 -
__attribute__ ((noreturn))的使用说明
今天看一下UNIX高级编程看到里面有用到__attribute__ ((noreturn)),当时有点懵,好久没碰到这个,这是与GCC关联的,就是把__attribute__ ((noreturn))放在自己定义的函数后面,记得在“;”前面。这样可以改变函数的属性,代表这个自己编写的函数在进行GCC编译的时候声明没有返回值。比如:void mes_err(int )__attribute__...原创 2020-04-22 15:50:38 · 1215 阅读 · 0 评论 -
printf 的参数
这需要根据你的printf函数的参数来决定。例一:printf( “%d”,*p);printf中的%d参数要求你提供一个整数,而p是个指针,它指向的是整数,这时用*p表示p指向的整数。如果你用p的话,将把指针的地址取值进行输出。例二:printf( “%s”,p );printf中的%s参数要求你提供一个指针,而p就是一个指针变量,可以直接写变量名p所以,参数使用时要满...转载 2020-04-20 18:51:49 · 1477 阅读 · 0 评论