should I free pointer returned by getpwuid() in Linux?

冷暖自知 提交于 2019-12-05 04:41:12

No. You do not need to free the result. You can only call free(3) on pointers allocated on the heap with malloc(3), calloc(3) or realloc(3).

Static data is part of a program's data or bss segments and will persist until the process exits (or is overwritten by exec(2)).

Use the *_r functions (getpwuid_r()) for thread-safe (reentrant) functions that allow you to supply the buffer space to place the returned information in. Be sure check errno for success or failure. If you do not use reentrant functions you can safely assume that the function returns data that does not need to be freed, but will also be overwritten by successive calls to the same function.

Actually it returns a pointer to an already existing structure, so you should not free it.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!