string.h函數的實現

string.h函數的實現

string.h

/*  
file:string.h  
#ifndef _LINUX_STRING_H_  
#define _LINUX_STRING_H_  
 
/* We don't want strings.h stuff being user by user stuff by accident */   
  
#ifdef __KERNEL__   
  
#include <linux/types.h>  /* for size_t */   
#include <linux/stddef.h> /* for NULL */   
#include <linux/compiler.h>   /* for inline ((always_inline)) */   
  
#ifdef __cplusplus   
extern   " C "  {   
#endif   
  
extern   char  * ___strtok;   
extern   char  * strpbrk( const   char  *, const   char  *);   
extern   char  * strtok( char  *, const   char  *);   
extern   char  * strsep( char  **, const   char  *);   
extern  __kernel_size_t strspn( const   char  *, const   char  *);   
  
  
/*  
 * Include machine specific inline routines  
 */   
#include <asm/string.h>   
  
#ifndef __HAVE_ARCH_STRCPY   
extern   char  * strcpy( char  *, const   char  *);   
#endif   
#ifndef __HAVE_ARCH_STRNCPY   
extern   char  * strncpy( char  *, const   char  *, __kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_STRCAT   
extern   char  * strcat( char  *,  const   char  *);   
#endif   
#ifndef __HAVE_ARCH_STRNCAT   
extern   char  * strncat( char  *,  const   char  *, __kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_STRCMP   
extern   int  strcmp( const   char  *, const   char  *);   
#endif   
#ifndef __HAVE_ARCH_STRNCMP   
extern   int  strncmp( const   char  *, const   char  *,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_STRNICMP   
extern   int  strnicmp( const   char  *,  const   char  *, __kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_STRCHR   
extern   char  * strchr( const   char  *, int );   
#endif   
#ifndef __HAVE_ARCH_STRRCHR   
extern   char  * strrchr( const   char  *, int );   
#endif   
#ifndef __HAVE_ARCH_STRSTR   
extern   char  * strstr( const   char  *, const   char  *);   
#endif   
#ifndef __HAVE_ARCH_STRLEN   
extern  __kernel_size_t strlen( const   char  *);   
#endif   
#ifndef __HAVE_ARCH_STRNLEN   
extern  __kernel_size_t strnlen( const   char  *,__kernel_size_t);   
#endif   
  
#ifndef __HAVE_ARCH_MEMSET   
extern   void  * memset( void  *, int ,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_MEMCPY   
extern   void  * memcpy( void  *, const   void  *,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_MEMMOVE   
extern   void  * memmove( void  *, const   void  *,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_MEMSCAN   
extern   void  * memscan( void  *, int ,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_MEMCMP   
extern   int  memcmp( const   void  *, const   void  *,__kernel_size_t);   
#endif   
#ifndef __HAVE_ARCH_MEMCHR   
extern   void  * memchr( const   void  *, int ,__kernel_size_t);   
#endif   
  
#ifdef __cplusplus   
}   
#endif   
  
#endif   
#endif /* _LINUX_STRING_H_ */   
*/

 

string.c


發佈了14 篇原創文章 · 獲贊 13 · 訪問量 18萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章