C++
wang xm
这个作者很懒,什么都没留下…
展开
-
Linux下C++查看程序运行时间间隔
Linux C++查看程序运行间隔原创 2022-03-01 15:20:07 · 1213 阅读 · 0 评论 -
多线程的write和read
对于write和read,由于缓冲区不足或者中断等问题,可能导致读不完或写不完,这也是为什么write和read分别返回的是成功的字节数的原因。所以书中给出了另一种操作readn和writen,保证了读写的完整性,但不保证原子性。 ssize_t /* Read "n" bytes from a descriptor */ readn(int fd, void *vptr, size_t n) { size_t nleft; ssize_t nread;原创 2021-07-17 20:45:35 · 1367 阅读 · 0 评论 -
C++11中的substr函数
这个函数可以提取字符串中的某一段,具体用法是:ss.substr(开始下标,总长度);string ss="1234567890";ss.substr(0,3);//123ss.substr(1,3);//234ss.substr(3,3);//456ss.substr(3,4);//4567注意:第二个参数不是结束下标!!!...原创 2021-07-07 21:16:41 · 244 阅读 · 0 评论 -
WAV格式文件通道数增加
WAV格式文件采用PCM编码,其头部信息总共有44个字节(可能不一定,有些可能有差异,但是这些信息不会影响后边的音频转换),我们要将通道数转换,需要先将头部信息内容进行修改,然后再在后面的音频信息存储中扩展。pcm wav格式转换C语言读取wav文件1、大小端确认大端是高字节存放到内存的低地址小端是高字节存放到内存的高地址intelx86是小端,ARM架构cpu默认是小端,也可以修改为大端,而Motorola680x motorola 的CPU以及51cpu都是大端。在写二进制文件的时候,是按原创 2021-06-14 12:06:06 · 1204 阅读 · 1 评论 -
Linux中不带缓冲区的write和带缓冲区的printf/fputs区别,以及Linux中的进程缓冲区拷贝
在Linux中,write是不带缓冲区的函数,也就是其写完以后不会在缓冲区中存储,直接写出。考虑以下代码1、使用fputs# include <unistd.h># include <stdio.h># include <stdlib.h># include <errno.h> int main(void){ FILE *stream; if ((stream = fopen ( "./log.txt" , "a" ))原创 2021-06-09 09:56:28 · 1196 阅读 · 0 评论 -
strlen和sizeof区别
char buf[20]="hello world"; printf("strlen(buf[20]) = %ld\n",strlen(buf)); printf("sizeof(buf[20]) = %ld\n",sizeof(buf)); char buf2[]="hello world"; printf("strlen(buf[]) = %ld\n",strlen(buf2)); printf("sizeof(buf...原创 2021-06-09 09:21:52 · 110 阅读 · 0 评论 -
Linux中的write及read字节数
write函数如果强行多写的话,会在后面以\0补充#include <unistd.h>#include<stdio.h>#include<error.h>#include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>#include<iostream>#include<string.h>using namespace std;int m原创 2021-06-07 17:47:26 · 709 阅读 · 0 评论 -
multiple definition of `kvContainer[abi:cxx11]‘; CMakeFiles/server.dir/src/keyValue.cpp.o:(.bss+0x0)
这是全局变量定义的问题,如果我想在一个文件中定义全局变量,那么只能定义在cpp文件中,如果想要别的文件可以使用这个全局变量,则要早.h文件里定义extern xxx;参考文献如:在qq.cpp文件里定义一个全局变量,这样完全可以map<string,string> mm;//qq.cpp如果想在别的文件里使用mm,就在qq.h里面使用extern声明,如果不用就不用写extern map<string,string> mm;//qq.h现在就可以在main.cpp里.原创 2021-06-03 21:16:35 · 840 阅读 · 0 评论 -
fatal error: bits/stdc++.h 没有那个文件或目录 C++中提示无法调用<bits/stdc++>或者<map>等问题
今天碰到了个奇怪的问题,对于标准库<bits/stdc++>甚至库,在编译时都会提示找不到库刚开始我以为是编译器的问题,但是折腾了一顿还是不幸,最后发现,我是通过一个.c文件来调用一个cpp文件,在cpp文件中include了这些库,所以我把.c文件改为.cpp文件就好了。...原创 2021-06-03 21:04:41 · 3390 阅读 · 2 评论 -
C++中char*与string转换
(1)char*转换为string:直接赋值即可 char a[1024]="abcdefg"; string mm=a;(2)求char*(不包含\0)以及string的长度:strlen()函数cout<<"a.size:"<<strlen(a)<<endl;(3) string转化为char*参考文献注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针比如:最好不要这样:char* c;string s原创 2021-06-03 18:22:37 · 20396 阅读 · 1 评论