c++各种函数随笔记录

进程线程ID相关

PID:每个线程都有自己的PID,唯一
TID:同一进程下的线程编号,同一进程中唯一,跨进程不唯一

获取线程pid

  • getpid()得到的是进程的pid,在内核中,每个线程都有自己的PID,要得到线程的PID,必须用syscall(SYS_gettid);
#define __NR_gettid      224  
tid = syscall(__NR_gettid);

获取线程tid

  • pthread_self函数获取的是线程ID,线程ID在某进程中是唯一的,在不同的进程中创建的线程可能出现ID值相同的情况。
std::cout << "tid:" << pthread_self() << std::endl;

sprintf

把东西写入字符数组

sprintf(buf, "%ld", tu / 1000)
//把 tu/1000写入buf,%ld表示以长整型十进制格式输出(long int) 

snprintf(char *str, size_t size, const char *format, ...)

C 库函数 int snprintf(char *str, size_t size, const char *format, ...) 设将可变参数(...)按照 format 格式化成字符串,并将字符串复制到 str 中,size 为要写入的字符的最大数目,超过 size 会被截断。

int wn = snprintf(_value_buf[field_index], GlobalParameter::kMaxRecordFieldValueSize, "%s", value);

sizeof()和malloc_size()

看似都是返回一个对象的大小,实则区别如下
The sizeof the object is how much space it requires for that object to be stored in memory. The malloc_size is how much space was actually allocated for it (for example, in a memory allocation system with fixed-size pools, you might be allocated a different amount depending on how much other memory was in use).

realloc() 重新分配内存空间

void* realloc (void* ptr, size_t size);

  • 参数说明:ptr 为需要重新分配的内存空间指针,size 为新的内存空间的大小。
  • realloc() 对 ptr 指向的内存重新分配 size 大小的空间,size 可比原来的大或者小,还可以不变(如果你无聊的话)realloc的实现,它所表达的含义基本是相同的:它尽量在原来分配好的地址位置重新分配,如果原来的地址位置有足够的空余空间完成重新分配,那么它返回的新地址与传入的旧地址相同;否则,它分配新的地址块,并进行数据搬迁。参见(http://man.cx/realloc%E3%80%82)
void *new_ptr = realloc(ptr, new_size);
if (!new_ptr) {
    // 错误处理。
}
ptr = new_ptr
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在 Linux C++ 网络编程中,经常会使用到线程的标识,下面整理了常用的获取线程标识的方法: 1、gettid...
    奋斗_0268阅读 11,176评论 0 0
  • 0、准备知识 超线程技术(Hyper-Threading):就是利用特殊的硬件指令,把两个逻辑内核(CPU cor...
    67c7ec450933阅读 3,846评论 0 0
  • 该类封装了thread的create、join、detach等操作。 多线程中系统中将要大量使用线程操作函数。为了...
    Myth52125阅读 5,514评论 0 0
  • 线程概念 典型的UNIX进程可以看作只有一个控制线程,任务的执行只能串行来做。有了多个控制线程后,就可以同时做多个...
    pangqiu阅读 3,150评论 0 2
  • 什么是线程 LWP:light weight process 轻量级的进程,本质仍是进程(在Linux环境下)进程...
    Sharkchilli阅读 2,915评论 0 0

友情链接更多精彩内容