C¶ÁÈ¡ÎļþµÄÒ»ÐÐ
¸Õ¸ÕÍê³ÉµÄC¶ÁÈ¡ÎļþÒ»ÐÐÊý¾Ý£¬¿ÉÒÔ¶Á´óÁ¿Êý¾ÝµÄÐС£
/*
º¯Êý¹¦ÄÜ£º
¶ÁÈ¡ÎļþµÄÒ»ÐУ¬µ±¿ª±ÙÄÚ´æ²»¹»Ê±returnֵΪ-1,size»á¸ø³öÖÁÉÙÐèÒªµÄÄÚ´æ´óС£¬
returnֵΪ1ʱ±íʾ´ËʱÎļþ½áÊø£¬´Óbuffer,sizeµÃµ½×îºóÒ»ÐеÄÊý¾ÝºÍ´óС¡£
ÊäÈë²ÎÊý£º
stream£ºÎļþÁ÷
size£ºbuffer´óС,¿ª±ÙÄÚ´æ´óС
Êä³ö²ÎÊý£º
buffer£º´æ·ÅÒ»ÐÐ×Ö·û
size£ºbuffer´óС£¬×Ö·ûÊýÄ¿
·µ»ØÖµ£º
-1£º¶ÁÈ¡·¢Éú´íÎó
0£º³É¹¦¶ÁÈ¡
1: Îļþ½áÊø
±¸×¢£º
2010.01.11
*/
int rtFGetLine(FILE *stream,char *buffer,int &size)
{
static unsigned long offset = 0;
bool fileend = 0;
unsigned long bufsize = 1024;
char *buf = NULL, *dest = NULL;
unsigned short inc = 1;
if(!stream || !buffer)
{
return -1;
}
while(1)
{
bufsize *= inc;
buf = (char *)malloc(sizeof(char)*bufsize);
if(NULL == buf)
{
return -1;
}
memset(buf,0x00,bufsize);
fseek(stream,offset,SEEK_SET);
fread(buf,sizeof(char),bufsize,stream);
if(ferror(stream))
{
return -1;
}
dest = strchr(buf,'\n');
if(NULL == dest)
{
if( strlen(buf) >= bufsize - 1 )//¸ÃÐÐ×Ö·û´óÓÚbufsize
{
inc++;
free(buf);
buf = NULL;
continue;
}
if(feof(stream))//Îļþ°üº¬½áÊø±êÖ¾
{
&nbs
Ïà¹ØÎĵµ£º
1.ÒýÑÔ ±¾ÎĵÄд×÷Ä¿µÄ²¢²»ÔÚÓÚÌṩC/C++³ÌÐòÔ±ÇóÖ°ÃæÊÔÖ¸µ¼£¬¶øÖ¼ÔÚ´Ó¼¼ÊõÉÏ·ÖÎöÃæÊÔÌâµÄÄÚº¡£ÎÄÖеĴó¶àÊýÃæÊÔÌâÀ´×Ô¸÷´óÂÛ̳£¬²¿·ÖÊÔÌâ½â´ðÒ²²Î¿¼ÁËÍøÓѵÄÒâ¼û-¡£
Ðí¶àÃæÊÔÌâ¿´ËÆ¼òµ¥£¬È´ÐèÒªÉîºñµÄ»ù±¾¹¦²ÅÄܸø³öÍêÃÀµÄ½â´ð¡£ÆóÒµÒªÇóÃæÊÔÕßдһ¸ö×î¼òµ¥µÄstrcpyº¯Êý¶¼¿É¿´³öÃæÊÔÕßÔÚ¼¼ÊõÉϾ¿¾¹´ïµ½ÁËÔ ......
char str1[] = "abc";
char str2[] = "abc";
const char str3[] = "abc";
const char str4[] = "abc";
const char* str5 = "abc";
const char* str6 = "abc";
cout << boolalpha&nb ......
´ó¼Ò¶¼ÖªµÀÔÚUnix/LinuxÖÐÓиömanÃüÁ¿ÉÒÔ²éѯ³£ÓõÄÃüÁº¯Êý¡£¿ÉÊǶÔÓÚÎÒÃÇÕâÑùÖ»ÖªµÀÓÃ"man º¯ÊýÃû"À´²éѯµÄÈËÀ´Ëµ£¬»áÓöµ½ºÜ¶àÎÊÌ⣬±ÈÈ磺
man read£¬ÎÒÏë¿´µÄÊÇANSI CÖÐstdioµÄreadº¯ÊýÔÐͺÍ˵Ã÷£¬Ã»Ïëµ½³öÀ´µÄÈ·ÊÇBASHÃüÁîµÄ˵Ã÷£¬ÕâÊÇÔõô»ØÊ ......
#include <stdio.h>
#include <stdlib.h>
#include <syslog.h>
#include <signal.h>
#include <unistd.h>
#include <string.h>
#include <getopt.h>
#define MAX_READFILE 24
#define MAX_INPUTFILE 10240
char *file ;
void time_out(){
syslog(LOG_INFO,"read inp ......