Linux程式設計之strdup和strndup函式

2021-09-03 01:16:04 字數 819 閱讀 3283

strdup和strndup函式用於複製字串,函式原型如下:

#include

char

*strdup

(const

char

* s)

;char

*strndup

(const

char

* s,size_t n)

;

strdup函式複製字串s內容,並返回拷貝字串的首位址。strdup函式內部使用malloc函式對新字串分配記憶體,使用完後需要使用free函式進行釋放。

strndup函式與strdup函式功能相似,不過之拷貝源字串前n個字元,並在末尾加『\0』。函式使用**如下。

#include

#include

#include

intmain()

程式執行結果如下:

linux還提供給了另外兩個函式:

char

*strdupa

(const

char

*s);

char

*strndupa

(const

char

*s, size_t n)

;

這兩個函式分別和strdup和strndup函式相同,唯一不同的就是拷貝的字串是使用alloca函式在棧上分配的,所以不需要手動釋放掉。

Linux程式設計之recvmsg和sendmsg函式

include include ssize t send int sockfd,const void buf,size t len,int flags ssize t sendto int sockfd,const void buf,size t len,int flags,const struct...

strcpy和strdup比較和詳解

extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free 釋放相應的記憶體空間,否則會造成記憶體洩漏。返回值 返...

strcpy和strdup比較和詳解

extern char strdup char s 標頭檔案 string.h 功能 將串拷貝到新建的位置處 說 明 strdup不是標準的c函式。strdup 在內部呼叫了malloc 為變數分配記憶體,不需要使用返回的字串時,需要用free 釋放相應的記憶體空間,否則會造成記憶體洩漏。返回值 返...