庫函式原始碼剖析系列 6 strchr

2021-06-09 21:28:33 字數 445 閱讀 8229

strchr:

// strchr

#include char *strchr(const char *s, int c) }

return (char *)s;

}int main( int argc, char **argv )

1、當傳入的指標是null時,函式中是沒有檢查的。

char *strchr(const char *s, int c)

上面的程式是錯的,就是因為當查詢的是'\0'時,它認為是到達了字串尾,卻沒想到'\0'使while的兩個條件同時為假了!這種錯誤得注意。所以應改為:

char *strchr(const char *s, int c)

必須先測試是不是找到了c。

庫函式原始碼剖析系列 1 strcpy

if語句,while語句。第一篇就以許多公司喜歡面試的一道題開始吧 strcpy的實現 為了區別,函式名首字母大寫,以後都是 strcpy include char strcpy char dest,const char src int main int argc,char ar 1 strcpy返...

glibc fread函式原始碼剖析

最近看apue,看到了fread函式,就把之前想分析的乙個函式借這個機會研究一下。先寫個程式,呼叫一下fread函式。include int main 好了,還是咱們的老套路,通過gdb可以直接定位到fread的原始碼,原始碼如下,位於.libio iofread.c。io size t io fr...

Select函式原始碼剖析

select是最基礎的io復用函式,對於其實現,做了一定的了解,記錄如下 原始碼一進來就可以發現,它的事件是通過巨集來實現的 define fds in fds,n fds in n 讀事件 define fds out fds,n fds out n 寫事件 define fds ex fds,n...