易截截图软件、单文件、免安装、纯绿色、仅160KB

C 标准库 函数 源代码的实现 和 分析

//库函数实现
char *strcat (char *dst, const char *src)
{
  char *p = dst;
  while (*p)
    p++;
  while ((*p++ = *src++))
    ;
  return dst;
}
char *strncat (char *s1, const char *s2, long unsigned int n)
{
  char *dest = s1;
  char c;
  while (*s1) s1++;
 c = '\0';
  while (n > 0)
 {
      c = *s2++;
  *s1++ = c;
      if (c == '\0')
  return dest;
      n--;
    }
  if (c != '\0')
    *s1 = '\0';
  return dest;
}
 
char * strcpy (char *d, const char *s)//
{
  char *r = d;
  while ((*d++ = *s++));
  return r;
}
char *strncpy (char *s1, const char *s2, long unsigned int n)
{
  char *dest = s1;
  for (; *s2 && n; n--) //n 如果大于s2的长度,则设置0
    *s1++ = *s2++;
  while (n--)
    *s1++ = 0;
  return dest;
}
void * memcpy (void *dst, const void *src, long unsigned int n)
{
  const char *srcp;
  char *dstp;
  srcp = src;
  dstp = dst;
  while (n-- != 0)
    *dstp++ = *srcp++;
  return dst;
}
void *memmove (void *dst, const void *src, long unsigned int n)
{
  const char *srcp;
  char *dstp;
  srcp = src;
  dstp = dst;
  if (srcp < dstp)
    while (n-- != 0)
      dstp[n] = srcp[n];
  else
    while (n-- != 0)
      *dstp++ = *srcp++;
  return dst;
}
void *memset (void *dst, int c, long unsigned int n)
{
  while (n-- != 0)
    n[(char *) dst] = c; // 即 (char*)dst[n] = c;
  return dst;
}
库函数力求简洁,因此存在一定的安全的问题,这是在使用过程中特别注意的地方。也因此VC2005才推出_s的所谓的安全函数。也就是多加了判断位。


相关文档:

一个Linux下C线程池的实现

      什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视,这时也是线程池该出场的机会了。如果线程创建和销毁时间相比任务执行时间可以忽略不计,则没有必要使用线程池了。
   下面是 ......

标准C/C++程序通过gSOAP调用WebService

转自:http://commandos.blog.51cto.com/154976/130652
一、 环境准备
在本文中,所有程序均在Linux下开发完成,经测试能够正常运行。
在开发过程中,我们需要用到gSOAP,可以从以下网址下载获得:[url]http://www.cs.fsu.edu/~engelen/soap.html[/url]
我下载的是gsoap_2.7.12.tar.gz
下载下来解压缩,按正常安装过 ......

VC下利用Pro*C开发Oracle接口

本文介绍了使用Pro*C/C++在Visual
C++环境下开发Oracle数据库接口程序的方法
设计思路其实这样:首先通过VC建立一个工程,自动化建立MAKEFILE,UNIX需要自己写MAKEFILE。
其次配置VC的环境,将PROC的.H,.LIB的路径加入DERECTIRY。写一个PC文件,即PROC文件。放到工程相应的目录下。然后把PC文件加入工程。使用PROCUI.E ......

用J2ME做基于手机的C/S模式游戏的流程

问题:用J2ME做基于手机的C/S模式游戏的流程
 查看该问题完整内容如果可以 请介绍下服务器和客户端等方便的内容回答:这些在百度上不好问,去CSDN问用什么语言做都是一样的,你用J2ME做自然是可能要在手机上用,看你要通过蓝牙还是GPRS,但是编程上本质区别不大,底层都是透明的。如何建立连接,通信这些应该明白吧, ......

c / c++ /vc 的一些小知识

打开文件或者程序
1、ShellExecute(0,"open","c:\\abc.exe","","",SW_SHOW);
2、WinExec("c:\\a.exe",SW_SHOW);
3、system("dir c:\\");
关闭文件
m_hwnd = FindWindows("Notepad","a.txt-记事本");
SendMessage(m_hwnd,WM_SYSCOMMAND,SC_CLOSE,0);
隐藏DOS窗口
#pragma comment( linker, "/subsystem:\"windows\" ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号