ã®ãããªããã¹ãã®ãããããŒã¿ãèªã¿èŸŒãã§é
åã«åžãåºãåŠçã
以äžã®ããã«äœã£ãã®ã§ãããgcc äžã§ã¯åé¡ãªãåžãåºããã®ã«ã
VC++ã§ãããšããªããã³ã³ãã€ã«ã¯ã§ããŠããäŸå€åŠçãèµ·ãããŠ
ããŸããŸãã
ãããã°ã§å€æ°ã远ããšãã©ãããp2ã®å€ãè©äŸ¡ã§ããªãããšãªã£ãŠãããããªã®ã§
ãã
äžã®ã³ãŒãã®
p1 = fgets(str,1024,fp);
p2 = p1;
while( *p2!='\n' )// âããã§æ¢ãŸã£ãŠããŸã
ã®éšåã§ãã
ã©ãããã°ããã®ã§ãããïŒ
ã©ããééã£ãŠããã®ããã©ãªããæããŠããã ããªãã§ããããïŒ
// ãããããŒã¿ã®åžåºã
BOOL CMap::LoadMap(char *file_name)
{
FILE *fp;
char str[1024];
if( NULL == (fp=fopen(file_name,"r")) )
{
return false;
}
fseek(fp,0,SEEK_SET);
// 暪å¹
fgets(str,1024,fp);
cm_width = atoi(str);
// 瞊å¹
fgets(str,1024,fp);
cm_height = atoi(str);
cm_mapdata = (char*)malloc(sizeof(char)*cm_width*cm_height);
memset(cm_mapdata,0,sizeof(cm_mapdata));
if( NULL == cm_mapdata )
{
fclose(fp);
return false;
}
char *p1,*p2;
char *pmap = cm_mapdata;
char tmp[256];
while(!feof(fp))
{
p1 = fgets(str,1024,fp);
p2 = p1;
while( *p2!='\n' )
{
// ã³ã³ãã®äœçœ®
if( *p2 == ',' )
{
*p2 = '\0';
sprintf(tmp,p1);
*pmap++ = atoi(tmp);
p1 = p2+1;
}
p2++;
}
// æ¹è¡ã®äœçœ®
*p2 = '\0';
sprintf(tmp,p1);
*pmap++ = atoi(tmp);
}
fclose(fp);
return true;
}
http://www.netlaputa.ne.jp/~mtrack/pub/xprintf.zip
[äŸ]
#define XPRINTF
#define XMESSAGE
#include "xprintf.h"
int x;
int y;
Xprintf("倿°x=%d", x);
Xwait(3.0);
Xmessage("倿°y=", y);
Xprintf() ã¯ãprintf() ãšåçã®åŒæ°ãåããWinMain ã§èµ·å
ããã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠèªåçã«ã³ã³ãœãŒã«ãäœæããŠ
ã¡ãã»ãŒãžã衚瀺ããŸãã
Xmessage() ã¯ãprintf() ãšåçã®åŒæ°ãåããã¡ãã»ãŒãžãã
ã¯ã¹ã衚瀺ããŸãã
Xwait() ã¯ãç§æ°ãåŒæ°ãšããŠåããæå®ãããç§æ°ã®éåŸ
æ©ããŸãã
ãªããxprintf.h ãã€ã³ã¯ã«ãŒãããåã«ãXPRINTFãå®çŸ©ããŠ
ãããªããšãXprintf() ã¯å®è¡ãããŸããã
åæ§ã«ãxprintf.h ãã€ã³ã¯ã«ãŒãããåã«ãXMESSAGEãå®
矩ããŠãããªããšãXprintf() ã¯å®è¡ãããŸããã
--
MotionTrack Technologies
Provides Presentation Solution Powered
by Real Time Rendering Technologies
http://www.netlaputa.ne.jp/~mtrack/
mailto:mtr...@netlaputa.ne.jp
#define XPRINTF
#define XMESSAGE
extern "C"
{
#include "xprintf.h"
ãp2 ã NULL ã«ãªããŸããã(^^;
ãfeof() ã®é¢é£ã®åäœã®éãããå€åãããããšã®åå ã¯ã
æ¹è¡æåã® CR ãš CR+LF ã®éãã®åœ±é¿ã ãããšæããŸãã
ããã£ãŠããã®æã®åœ±é¿ãåºãªããããªå®è£
ã«ããã®ã
幞ãã ãšæããŸãã
ãäŸãã°ã
// ãããããŒã¿ã®åžåºã
BOOL CMap::LoadMap(char *file_name)
{
FILE *fp;
char str[1024];
int data_size;
if( NULL == (fp=fopen(file_name,"r")) )
{
return false;
}
// 暪å¹
fgets( str, sizeof(str), fp );
cm_width = atoi( str );
// 瞊å¹
fgets( str, sizeof(str), fp );
cm_height = atoi( str );
data_size = cm_width * cm_height;
if( data_size == 0 )
{
fclose(fp);
return false;
} // VC++ ã§ã¯ malloc(0) ã¯æå¹ã
cm_mapdata = (char*)malloc( data_size );
if( NULL == cm_mapdata )
{
fclose(fp);
return false;
} // sizeof(cm_mapdata) == sizeof(char*) ã®ã¯ãã
memset( cm_mapdata, 0, data_size );
char *p1, *p2;
char *pmap = cm_mapdata;
while( fgets( str, sizeof(str), fp ) )
{
if( *str == '\n' ){
continue;
}
for( p1 = p2 = str; *p1; ++p1 ){
if( *p1 == ',' || *p1 == '\n' ){
*pmap++ = atoi( p2 );
p2 = p1 + 1;
if( --data_size == 0 ){
break;
}
}
}
}
fclose( fp );
return true;
}
--
å±±å£@çŠå²¡ <hy...@mx7.tiki.ne.jp>
"H.Yamaguchi" <hy...@mx7.tiki.ne.jp> wrote in message
news:91h0u8$d0f$1...@nntp-kyusyu.tiki.ne.jp...
> if( --data_size == 0 ){
> break;
> }
ããã ãšããŸã å±éºã§ããã(;_;
--
å±±å£@çŠå²¡ <hy...@mx7.tiki.ne.jp>
以äžã®å Žæã«ãã xprintf.c ãçšãããš VC ã®ããã°ã©ã
ããããã°ãããšãã«åœ¹ã«ç«ã€ããšããããŸãã(zipãã¡ã€ã«
ã®ãµã€ãºã¯1116ãã€ãã§ã)
http://www.netlaputa.ne.jp/~mtrack/pub/xprintf.zip
[äŸ]
#define XPRINTF
#define XMESSAGE
#include "xprintf.h"
int x;
int y;
Xprintf("倿°x=%d", x);
Xwait(3.0);
Xmessage("倿°y=%d", y);
Xprintf() ã¯ãprintf() ãšåçã®åŒæ°ãåããWinMain ã§èµ·å
ããã¢ããªã±ãŒã·ã§ã³ã«å¯ŸããŠèªåçã«ã³ã³ãœãŒã«ãäœæããŠ
ã¡ãã»ãŒãžã衚瀺ããŸãã
Xmessage() ã¯ãprintf() ãšåçã®åŒæ°ãåããã¡ãã»ãŒãžãã
ã¯ã¹ã衚瀺ããŸãã
Xwait() ã¯ãç§æ°ãåŒæ°ãšããŠåããæå®ãããç§æ°ã®éåŸ
æ©ããŸãã
ãªããxprintf.h ãã€ã³ã¯ã«ãŒãããåã«ãXPRINTFãå®çŸ©ããŠ
ãããªããšãXprintf() ã¯å®è¡ãããŸããã
åæ§ã«ãxprintf.h ãã€ã³ã¯ã«ãŒãããåã«ãXMESSAGEãå®
矩ããŠãããªããšãXmessage() ã¯å®è¡ãããŸããã
ãªããC++ã®ãœãŒã¹ãã䜿ãå Žåã«ã¯ããããã以äžã®ããã«
ããŠã€ã³ã¯ã«ãŒãããŠãã ããã
#define XPRINTF
#define XMESSAGE
extern "C"
{
#include "xprintf.h"
}
--
> p1 = fgets(str,1024,fp);
> p2 = p1;
> while( *p2!='\n' )// âããã§æ¢ãŸã£ãŠããŸã
ãŸãããã®å Žåäºã€ã®å¯èœæ§ãèããŸãããã
1.fgetsãNULLãè¿ããŠããå Žåã
2.*p2ãstr[1024]ãè¶
ããŠã¢ã¯ã»ã¹ããŠããå Žåã§ãã
ã©ã¡ãã®ãšã©ãŒãèµ·ããŠãããã¯ã£ãããããããANSI颿°ã®assert()åã¯MS-C
ã®ASSERT()ã䜿çšããŸãã
p1 = fgets(str,1024,fp);
assert(p1 !=NULL); // 1.fgetsãNULLãè¿ããŠãã
p2 = p1;
while(assert(p2 < &str[1024]), *p2!='\n' ) // 2.*p2ãstr[1024]ãè¶
ã
ãŠã¢ã¯ã»ã¹ããŠãã
ãã2ã®å Žåãã£ããé¢åã§ããè¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF,
LF+CRã®åéãããããŸãæåŸã®LF+CRã¯ãŸãç¡ãã®ã§CR, CR+LF, LFã ããèããŸ
ããMS-Cããã¡ã€ã«ãããã¹ãã¢ãŒãã§éããšCR+LFãšLFã¯èªåçã«å€æãããŠLFã«
ãªããŸãããããæ¹è¡ãCRã§è¡ãããŠããå ŽåCRã¯ãã®ãŸãŸæ®ããããè¡ã®çµãããš
ã¿ãªãããŸããããããã£ãŠãè¡åäœã®èªèŸŒã¿ã«fgetcã¯äœ¿çšã§ããããªãªãžãã«ã®
xfgetcãäœæãããfgetcããªãŒããŒã©ã€ãããå¿
èŠãåºãŠããŸãã
ãããã«ä»¥äžã®ãããªããã°ã©ã ãçµãã§åãããŠã¿ãŸããã
#include "stdafx.h"
int main(int argc, char* argv[])
{
FILE *fp = fopen("CRLF.TXT", "wb"); // ãã€ããªã¢ãŒãã§æžããã¿
fwrite("1234\r5678\r", 10, 1, fp);
fclose(fp);
char buf[64];
fp = fopen("CRLF.TXT", "rt"); // "rt"ãš"r"ã¯MS-Cã®æšæºç¶æ
ã§ã¯å
äžåäœ
fgets(buf, 7, fp);
fclose(fp);
return 0;
}
ãããšãªããšãbufã«ã¯"1234\r5"ãå
¥ã£ãŠããŸãã"5678"ã¯"5"ãš"678"ã«åå²ã
ããŠããŸããŸããã
ãããfgetsã䜿çšã§ããªãçç±ã§ããããã確èªããããã«ã¯ããªãã®äœæã
ãããã°ã©ã ã®fgetsã®æ¬¡ã®è¡ã«ãã¬ãŒã¯ãã€ã³ããèšå®ããstrã«ããŠã¹ã«ãŒãœã«ã
ç§»åãããåŸå³ã¯ãªãã¯ãã¯ã€ãã¯ãŠãªãããã¯ãªãã¯ããŸããCR=13=0x0dãstrå
ã«èŠã€ããã°ã¢ãŠã(-_-ã¡)ãunixããŒã«ã§CRãCR+LFãŸãã¯LFã«æžãããããããªãª
ãžãã«ã®fgetsãäœæããå¿
èŠããããŸãã
char *p1=NULL,*p2=NULL;
char *pmap = cm_mapdata;
while( p1 = fgets(str,1024,fp) )
{
p2 = &str[0];
while( *p2!='\n' )
{
// ã³ã³ãã®äœçœ®
if( *p2 == ',' )
{
*p2 = '\0';
*pmap++ = atoi(p1);
p1 = p2+1;
}
p2++;
}
// æ¹è¡ã®äœçœ®
*p2 = '\0';
*pmap++ = atoi(p1);
}
fclose(fp);
return TRUE;
}
詊è¡é¯èª€ããçµæãšãããããçµæãªãŒã©ã€ãªæããšãªã£ãŠããŸããŸãããã
p1ã¯fgetsã®æ»ãå€ã§ã
p2ã¯str[0]ã®ã¢ãã¬ã¹ãçŽæ¥æå®ããããã©ããããããããŸããããŸããã
>è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
ç¥ããŸããã§ãããããã°ã©ã äžã§ã\rããšæžãããŠããŸãããåããµã ã䜿ã
ã\nã
ãšã®éãã®ããšãªãã§ããïŒç¥èäžè¶³ã§ãããŸããã
ãšã«ãããæ¹è¡æåã®çš®é¡ãã²ãšã€ã§ã¯ãªããã§ããã
fgetsãæ¹è¡æåãèŠã€ããŠããããã§èªã¿èŸŒã¿ãæ¢ããªãå Žåãããã®ã¯ããããŸ
ãããã
ãããªããäžã®ããã°ã©ã ã«ãããŠp1ã®å€ã£ãŠãªãã®ã§ãããïŒ
ã¹ãããå®è¡ããŠãã¯ã€ãã¯ãŠã©ããããŠã¿ããããã¡ããšstrã®å
é ãæããŠããŸ
ããã
ãŸããæ¹è¡æåã¯
ã10âã
ãâã
ãšè©äŸ¡ãããŠããŸãããããã¯æå³äžæã§ãããäžã§ã//æ¹è¡ã®äœçœ®ããšã³ã¡ã³ãã
ãäœçœ®ãŸã§
å®è¡ãç§»ã£ãŠããã®ã§ãã¡ããšæ¹è¡ãèªããã®ã ãšæããŸãã
ãªã®ã«ã
p1 = fgets(str,1024,fp);
p2 = p1;
ãšããæé ãèžãã§ããŸããšp1ã¯è©äŸ¡ã§ããªãããšãªã
ããªããp2ãè©äŸ¡ã§ããªããšãªã£ãŠããããæããŠããå
ãéãã
ãªãããããŸããããªãã®ã§ãã
ã©ãããããšãªãã§ãããïŒ
char *p1=NULL,*p2=NULL;
char *pmap = cm_mapdata;
while( p1 = fgets(str,1024,fp) )
{
p2 = &str[0];
while( *p2!='\n' )
{
// ã³ã³ãã®äœçœ®
if( *p2 == ',' )
{
*p2 = '\0';
*pmap++ = atoi(p1);
p1 = p2+1;
}
p2++;
}
// æ¹è¡ã®äœçœ®
*p2 = '\0';
*pmap++ = atoi(p1);
}
fclose(fp);
return TRUE;
}
詊è¡é¯èª€ããçµæãšãããããçµæãªãŒã©ã€ãªæããšãªã£ãŠããŸããŸãããã
p1ã¯fgetsã®æ»ãå€ã§ã
p2ã¯str[0]ã®ã¢ãã¬ã¹ãçŽæ¥æå®ããããã©ããããããããŸããããŸããã
>è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
ç¥ããŸããã§ãããããã°ã©ã äžã§ã\rããšæžãããŠããŸãããåããµã ã䜿ã
ã\nã
ãšã®éãã®ããšãªãã§ããïŒç¥èäžè¶³ã§ãããŸããã
ãšã«ãããæ¹è¡æåã®çš®é¡ãã²ãšã€ã§ã¯ãªããã§ããã
fgetsãæ¹è¡æåãèŠã€ããŠããããã§èªã¿èŸŒã¿ãæ¢ããªãå Žåãããã®ã¯ããããŸ
ãããã
ãããªããäžã®ããã°ã©ã ã«ãããŠp1ã®å€ã£ãŠãªãã®ã§ãããïŒ
ã¹ãããå®è¡ããŠãã¯ã€ãã¯ãŠã©ããããŠã¿ããããã¡ããšstrã®å
é ãæããŠããŸ
ããã
ãŸããæ¹è¡æåã¯
ã10âã
ãâã
ãšè©äŸ¡ãããŠããŸããããããæå³äžæãšãããããããããªãã®ã§ããã
äžã§ã//æ¹è¡ã®äœçœ®ããšã³ã¡ã³ãããäœçœ®ãŸã§
å®è¡ãç§»ã£ãŠãããšããããšã¯ãæ¹è¡ãèªèããã®ã ãšæããŸãã
ãªã®ã«ã
p1 = fgets(str,1024,fp);
p2 = p1;
ãšããæé ãèžãã§ããŸããšp1ã¯è©äŸ¡ã§ããªãããšãªã
ããªããp2ãè©äŸ¡ã§ããªããšãªã£ãŠããããæããŠããå
ãéãã
ãªãããããŸããããªãã®ã§ãã
ã©ãããããšãªãã§ãããïŒ
ãšããããfgetsã¯äœ¿ããªãã»ããããã®ã§ããããïŒ
> ãªã®ã«ã
> p1 = fgets(str,1024,fp);
> p2 = p1;
> ãšããæé ãèžãã§ããŸããšp1ã¯è©äŸ¡ã§ããªãããšãªã
> ããªããp2ãè©äŸ¡ã§ããªããšãªã£ãŠããããæããŠããå
ãéãã
ãå
èšäºã®ãœãŒã¹ã®ãã®éšåã§ãå€åfeofã0以å€ãè¿ããããå
ã«
fgetsãNULLãè¿ãã®ã§ãããã
ããªãã¡ã¬ã³ã¹ã«ã¯ãããã¡ã€ã«ã®çµç«¯ããåŸã§æåã®èªã¿åºãæäœ
ãè¡ããããšã0 以å€ã®å€ãè¿ããŸãããšãªã£ãŠããŸãã
> while(!feof(fp))
> {
scanf ã§ã"%d%*c" ãšããæžåŒã¯ãæ°å€ãèªã¿èŸŒã¿ãçŽåŸã®ã»ãã¬ãŒã¿ãèªã¿
é£ã°ãã®ã§ãã»ãŒåãããšãããã³ãŒããæ¬¡ã®ããã«ç°¡åã«æžããŸãã
int v, i; i = 0;
while (fscanf(fp, "%d%*c", &v) == 1)
cm_mapdata[i++] = v;
> 詊è¡é¯èª€ããçµæãšãããããçµæãªãŒã©ã€ãªæããšãªã£ãŠããŸããŸãããã
> p1ã¯fgetsã®æ»ãå€ã§ã
> p2ã¯str[0]ã®ã¢ãã¬ã¹ãçŽæ¥æå®ããããã©ããããããããŸããããŸããã
p2 = &str[0]; ã®ä»£ããã«ãp2 = p1; ã§ããp2 = str; ã§ãåé¡ãããŸããã
ããŸãèšã£ãã®ã¯ãwhile ã p1 ã®å€ãèŠãŠããããã§ãã
fgets(str, ...) ã¯ã1è¡èªã¿èŸŒããã str ã®å€ãè¿ããèªã¿èŸŒããªãã£ãã
NULL ãè¿ããŸããããã°ã©ãã¯ãã®å€ããå¿
ãããã§ãã¯ããªããšã ãã§ãã
次ã®ããã« feof() ã䜿ãã®ãªãå¥ã§ããã
for (;;) {
fgets(str, 1024, fp);
if (feof(fp)) break;
p2 = p2 = str;
ã§ããããã¯ã
for (;;) {
p2 = p1 = fgets(str, 1024, fp);
if (p1 == NULL) break;
ãããã¯ã
while (p2 = p1 = fgets(str, 1024, fp)) {
ãšæžãã®ãæ®éã§ããããããã
while (fgets(str, 1024, fp) != NULL) {
p2 = p1 = str;
ã®ã»ããæ®éãããããŸããã
>> è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
>
> ç¥ããŸããã§ãããããã°ã©ã äžã§ã\rããšæžãããŠããŸãããåããµã
> ã䜿ãã\nããšã®éãã®ããšãªãã§ããïŒç¥èäžè¶³ã§ãããŸããã
> ãšã«ãããæ¹è¡æåã®çš®é¡ãã²ãšã€ã§ã¯ãªããã§ããã
ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸããUnix äžã§ãWindows ã®ãã¡ã€ã«ããªãŒ
ãã³ãããªããŠã®ã¯ã ãã§ããã
> ãªã®ã«ã
> p1 = fgets(str,1024,fp);
> p2 = p1;
> ãšããæé ãèžãã§ããŸããšp1ã¯è©äŸ¡ã§ããªãããšãªã
> ããªããp2ãè©äŸ¡ã§ããªããšãªã£ãŠããããæããŠããå
ãéãã
> ãªãããããŸããããªãã®ã§ãã
> ã©ãããããšãªãã§ãããïŒ
ããäžåºŠãããŸããfgets() ããã¡ã€ã«ã®æåŸã«ã¶ã¡ããã£ãŠãè¡ãèªããª
ããšãã« NULL ãè¿ããp1 㯠NULL ã«ãªããŸãããããªãšãã*p1 ãã¢ã¯ã»
ã¹ãããšããããŠãã®ã·ã¹ãã ã§ã¯ã0çªå°ãåç
§ããŸãã
Linux ã MS-DOS ã§ã¯å€§äžå€«ãªã®ãããããŸããããFreeBSD ã Windows ã§
ã¯ãäŸå€ã§èœã¡ãŸããFreeBSD 㯠gcc ãªã®ã§ãSubject ã®ãgcc ã§ã¯å®è¡ã§
ããã®ã«ãããšããã®ã¯èª€ãã§ãã
> ãšããããfgetsã¯äœ¿ããªãã»ããããã®ã§ããããïŒ
fgets() ã fgetc() ã fread() ã fscanf() ããå
¥å颿°ã¯ãã¹ãŠæ»ãå€ã
ãã§ãã¯ããEOF ããšã©ãŒã§ãªããã©ãããããã°ã©ã ã§ç¢ºãããªããšãããŸ
ããã
C ã®å
¥éæžã« scanf("%d", &a); ãšã ãæžããŠããã®ã¯ã ãã§ãã
ãšã©ãŒããã§ãã¯ããŠããŸããããããã
if (scanf("%d", &a) != 1) { printf("å ¥åãšã©ãŒ\n"); exit(1); }
ãšæžããŠããã°ãscanf ãããã»ã©å«ãããããšã¯ãªãã£ãã§ãããã
Fortran ã Basic ã Pascal ããå
¥å颿°ããšã©ãŒã«ãªããšãããã©ã«ãã§
ã¯åŠçãäžæããŸããã ããããŠãŒã¶ãããã°ã©ãã¯å
¥åãšã©ãŒã«æ°ä»ãã
ããŒã¿ãããã°ã©ã ãä¿®æ£ãããããã®ã§ãã
C ã® scanf() ã¯ããšã©ãŒåŠçãå®å
šã«ããã°ã©ãã«ãŸãããŠããã®ã§ãã
ãããã仿§ãªã®ã§ãããããªã®ã«ãæ®éã®äººã¯ããããããªãã§ãscanf()
ãæªè
ã«ããŠããŸã£ãŠããã®ã§ãã
å¥èšäºã®å²¡ä¹ ããã®
> # ããããŠãscanf ã®äººæ°ãèœã¡ãŠããã®ãããããã scanf ...
ãšããçºèšã«è§ŠçºãããŠãã€ãé·ããªã£ãŠããŸããŸããã
--
忬æºåœŠ saka...@sm.sony.co.jp
忬ãããããã«ã¡ã¯ã
> >> è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
>
> ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
> ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
> ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸãã
ããããå°ãªããšãWin32ã®MS-Cã§ã¯CR, LF+CRã«å¯Ÿå¿ããŠããŸããããããåã«
äŸããããŸãããããããã¬ãŒã§ãã©ã€ãã©ãªãœãŒã¹ã§ã確èªããŠããŸã(^_^;)ãã
ãã¹ãã¢ãŒãã¯ãããŸã§ãæ©çš®äŸåã®ã¢ãŒãã§ããããã«(MS-Cã®ã©ã€ãã©ãªã§ã®è©±
ã§ãã)æžãæ»ãæã«ã¯CR+LFã«å¿
ããããŠããŸããŸãã
以åç§ã¯NC(å·¥äœæ©æ¢°)é¢é£ã®ã³ãŒããæ±ã£ãããšãããã®ã§ãããããã¯
ãEBCDICã³ãŒãããšèšãã³ãŒãã§ãããèšããªãã°ããã¹ããªã®ã§ãããããã¹ãã®
ã³ãŒãé
眮ãå
šç¶éã(^â^)ãå
æ¹ã®æ
åœè
ããã®ã³ãŒããå
šãæèããã«äœ¿çšããŠ
ãããããšãå®éã«ãã¡ã€ã«ãåãåããŸã§èª°ãæ°ä»ãã倧éšãã«ãªãããšã
(^â^)...ãANSI-Cã§'\e'==ESC(ãšã¹ã±ãŒã)ãäžæ¡çšã«ãªã£ãã®ããEBCDICã³ãŒãã
ã«ESCæåãç¡ãã£ãããã ãšèããŠããŸãããããªãããªã§ããããã¬äžã§ç¢ºèªã
ãããšã¯éåžžã«éèŠãª1ã¹ãããã§ãããã²å®è¡ããŠãã ãããããªãã®ã©ã€ãã©ãª
ã¯æ¬åœã«CR, LF+CRã«å¯Ÿå¿ããŠããŸãã?ãæžãæ»ããŠãå
ã®æ¹è¡æ
å ±ãåæ ããŸãã
?ãã¡ãŒã«ãŒãæäŸããã©ã€ãã©ãªã«é倧ãª?(^â^)æåŸ
ãæ±ãã®ã¯å±éºã§ãã
(^â^)ã
>忬ãããããã«ã¡ã¯ã
>> >> è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
>> ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
>> ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
>> ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸãã
> ããããå°ãªããšãWin32ã®MS-Cã§ã¯CR, LF+CRã«å¯Ÿå¿ããŠããŸããããããåã«
Windows ã§ã®æ¹è¡ã³ãŒã㯠CR+LF ã§ãããããã以å€ã«å¯Ÿå¿ããŠããª
ããŠã仿¹ãããŸãããã
忬ããã¯ãæ¹è¡ã³ãŒããäœã§ãã£ãŠããã§ã¯ãªãããOS ã®æ¹è¡ã³ãŒ
ããäœã§ãã£ãŠãããšæžãããŠããŸãã
>ã
>ãã¹ãã¢ãŒãã¯ãããŸã§ãæ©çš®äŸåã®ã¢ãŒãã§ãã
ããã¯ãã©ãããæå³ã§ãããããèŠæ Œã§ã¯åŠçç³»å®çŸ©åäœã§ã¯ãããŸ
ããã
æåã®å
éšè¡šçŸãããããšãã¡ã€ã«ã«ããã衚çŸãšã®é¢ä¿ã¯åŠçç³»å®çŸ©
ã§ãããã®æå³ã§æ©çš®äŸåãšèšãããã®ã§ããããå
¥åºåã䌎ãããã°
ã©ã ã¯ãã¹ãŠæ©çš®äŸåãšãªã£ãŠããŸããšæããŸãã
> 以åç§ã¯NC(å·¥äœæ©æ¢°)é¢é£ã®ã³ãŒããæ±ã£ãããšãããã®ã§ãããããã¯
>ãEBCDICã³ãŒãããšèšãã³ãŒãã§ãããèšããªãã°ããã¹ããªã®ã§ãããããã¹ãã®
>ã³ãŒãé
眮ãå
šç¶éã(^â^)ãå
æ¹ã®æ
åœè
ããã®ã³ãŒããå
šãæèããã«äœ¿çšããŠ
>ãããããšãå®éã«ãã¡ã€ã«ãåãåããŸã§èª°ãæ°ä»ãã倧éšãã«ãªãããšã
ããã¯ããã·ãã JIS ã§æžããããã¡ã€ã«ãæ¥æ¬èª EUC ããæ±ããªã
ãšãã£ã¿ãŒã§èªãããšãããèªããªãã£ãããšããããšäœãéãã®ã§ãã
ããã
ãã®ããšãšã
>ãããªãããªã§ããããã¬äžã§ç¢ºèªã
>ãããšã¯éåžžã«éèŠãª1ã¹ãããã§ãããã²å®è¡ããŠãã ããã
ãããã¬ãŒã®é¢ä¿ãåãããŸãããããã¥ã¢ã«ã確èªããã°æžã話ã§ã¯
ãªãã®ã§ããããã
>ããªãã®ã©ã€ãã©ãª
>ã¯æ¬åœã«CR, LF+CRã«å¯Ÿå¿ããŠããŸãã?ãæžãæ»ããŠãå
ã®æ¹è¡æ
å ±ãåæ ããŸãã
ããªãã® OS ã®æ¹è¡ã³ãŒãã¯äœã§ãããæ¬åœã« CR ã LF+CR ãæ¹è¡ã³ãŒ
ããšããŠåãæ±ãããŠããŸããã
>?ãã¡ãŒã«ãŒãæäŸããã©ã€ãã©ãªã«é倧ãª?(^â^)æåŸ
ãæ±ãã®ã¯å±éºã§ãã
>(^â^)ã
åŠæ³ãæ±ããŠããããã®ã§ã¯ãããŸãããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> ãšããããfgetsã¯äœ¿ããªãã»ããããã®ã§ããããïŒ
ããã§ã¯ãããŸãããfgets()ã䜿ããªãå Žåãããã ãã§ããç¹ã«OSãåãæ¿
ããŠäœæ¥ããããæ©çš®ãè¶
ããŠäœæ¥ããæã¯ãã®ãããªæ³šæãå¿
èŠã«ãªããŸãããªã«
ããã©ãã«ãçºçããå Žåã®å¯èœæ§ãšããŠ\nã®è²ã
ãªã€ã³ããªã¡ã³ãã®å¯èœæ§ã瀺ã
ãã«éããŸããã
gcc -> MS-C ãžäœæ¥ç°å¢ãç§»ãããçç±ã®äžã«MAC->Win32ãUNIX->Win32ã
???->Win32çã®å¯èœæ§ãæããŸããããã¹ãã³ãŒãã®å·®ç°ããã°ã®åå ãšãªãããšã
è¯ããããŸã(^â^)ãç¹ã«LANç°å¢ãçºéããä»ã¯ç°¡åã«èµ·ãããŸãããæã®DOSçšãš
ãã€ã¿ã¯CR+LFã«ãã察å¿ããŠããªãã£ãã®ã§ãCRã ãããå
¥ã£ãŠããªããšãŸãšãã«
è¡šç€ºåºæ¥ãªãã£ããã§ãã(^â^)ã
ãã²ã¯ã³ã¹ããããã¬ãŒã¹ãšå€æ°ã®äžèº«ãèŠãæè¡ã身ã«ä»ããŠäžãã(^â^)ã
ãã£ãšããªãã®å©ãã«ãªããšæããŸãã(^â^)ã
W.Mãããããã«ã¡ã¯ã
ã¡ãªã¿ã«MS-Cã®feof()ãªã®ã§ããstdio.hã®äžã§æ¬¡ã®ããã«å®çŸ©ãããŠããŸãã
#define feof(_stream) ((_stream)->_flag & _IOEOF)
æã®è¯ã人ãªããåããã§ããããããã®_IOEOFã®ãã©ã°ã¯fgets()ã§å
ãèªã
ãªããªã£ãŠå§ããŠã»ãããããŸãããããã£ãŠif (!feof(...))fgets(...)ã®ãããª
ã«ãŒãã§ã¯fgets()ãNULLãè¿ããŠããŸãããã§ãNULLãè¿ãæå§ããŠ_IOEOFã®ãã©
ã°ãç«ãŠãããã«ããŠããã®ã§ããããããããgccã§ã¯ãã©ã°ãè©äŸ¡ããã®ã§ã¯ãª
ããŠçŸåšã®åç
§äœçœ®ãšãã¡ã€ã«ã®ãµã€ãºãæ¯èŒããããã«ãªã£ãŠããã®ã§ã¯ãªãã§
ããããã
#define feof(_stream) ((_stream)->_pos >= (_stream)->_size) // æ³åã§
ã
ãããŸããgccã®ã©ã€ãã©ãªã«ã€ããŠããã«äžèº«ãèŠããç°å¢ã«ç¡ããã®ã§m(__)mã
ãã¡ããæ£ãã察å¿ã¯fgets()ãNULLãè¿ããèŠãããšã§ã(^â^)ã
çå±±ãããããã«ã¡ã¯ã
> 忬ããã¯ãæ¹è¡ã³ãŒããäœã§ãã£ãŠããã§ã¯ãªãããOS ã®æ¹è¡ã³ãŒ
> ããäœã§ãã£ãŠãããšæžãããŠããŸãã
ãŸãç§ã«ã¯ãOS ã®æ¹è¡ã³ãŒããã«ã€ããŠãªãããã§èšåããã®ãæå³ãããã
ãŸãããCP/M -> MS-DOS -> Windows ã®æµãã®äžã§ASR33ã®ãããªã¿ã€ãã©ã€ã¿ãŒç«¯
æ«ã䜿çšããŠããCP/M 以åã®OSãCR+LFã䜿çšããã¹ã¯ãªãŒã³ç«¯æ«ã䜿çšããUNIXã
æåéä¿¡ãã€ãæ°ãå°ãã§ãå°ãªãããããNEWLINEã³ãŒããšããŠLFãæ¡çšããã®ã
OSãã®ãã®ã§ã¯ãªãOSã䜿çšãã端æ«ã®å¶çŽã«éããŸããããOS ã®æ¹è¡ã³ãŒããã¯
ãã®ãããªçµç·¯ã§æ±ºãŸã£ãŠããŸãã
ãããããã¡ã€ã«ã«æ¹è¡ã³ãŒããå«ãããã¹ããæžãããæã©ã®ã³ãŒãã«ããã
ã³ã°ãããã¯ã¢ããªã±ãŒã·ã§ã³ã®ä»äºã§ãããããã£ãŠå
èšäºã(ãªãããã®ã¢ããª
ã±ãŒã·ã§ã³ã§äœæããã)ãã¡ã€ã«ããã®å
¥åã§å°ã£ãŠããå ŽåãOS ã®æ¹è¡ã³ãŒãã
ããã£ããäœã®åºæºã«ãªãã®ãå
šãåãããŸãããç§ã¯äœããã®ã¢ããªã±ãŒã·ã§ã³/
èšæž¬åš/NC/LANäžã®äœããã®æ©åšçããåãå
¥ãããã¡ã€ã«ãã€ã¡ãŒãžããŸãã
ãã®å Žåäœããã®ãšãã£ã¿ãŒçã®è¡šç€ºæ©åšã§ã©ã®ããã«èŠããŠããããšãã«ãã
ã¢ã³ãããŒã¹ãã§ã³ããŒããããšå
ã®ã³ãŒãããªããªã®ãã¯ç¢ºå®ã§ããŸããããã®å Ž
åå¯äžã®ç¢ºèªæ¹æ³ã¯ãããã¬ãŒã§èŠãããšã§ããEBCDICã®è©±ãããããå§ãŸããŸãã
ç§ã®æ¹è¡ã«é¢ããèšäºã
> ãŸãããã®å Žåäºã€ã®å¯èœæ§ãèããŸãããã
>
> 1.fgetsãNULLãè¿ããŠããå Žåã
> 2.*p2ãstr[1024]ãè¶
ããŠã¢ã¯ã»ã¹ããŠããå Žåã§ãã
ã®2.ã®å Žåã«ã€ããŠæ¹è¡ã³ãŒãã«èšåããŠããããšã«çç®ããŠãã ããã
> åŠæ³ãæ±ããŠããããã®ã§ã¯ãããŸãããã
ãªããšå€±ç€Œãªããšãèšã人ã§ãããã
çå±±ãããããã«ã¡ã¯ã
> >ããã¹ãã¢ãŒãã¯ãããŸã§ãæ©çš®äŸåã®ã¢ãŒãã§ãã
>
> ããã¯ãã©ãããæå³ã§ãããããèŠæ Œã§ã¯åŠçç³»å®çŸ©åäœã§ã¯ãããŸ
> ããã
ããæ©çš®äžã§åºåãããã¡ã€ã«ãå¥ã®æ©çš®ã§ããã®ãŸãŸããããã¯ãæšæºã®ã©ã€
ãã©ãªã®å©ããåããŠããèªããªãå Žåæ©çš®ã«äŸåããŠãããšèããŸããèŠæ Œäžã®åŠ
çç³»å®çŸ©åäœãšã¢ããªã±ãŒã·ã§ã³ã§ã®æ©çš®äŸåæ§ã¯å¥ã®åé¡ã§ãã
ãã®å ŽåCã®ããã¹ãã¢ãŒãã§ã¯OSã«äŸåãã倿ãèªåçã«è¡ãããããã§ã
ãããæ©çš®äŸåã®ãã¡ã€ã«ãäœæãããŸããããŠä»åºŠã¯ãã¡ã€ã«ãäœæããæ©çš®äžã§
ãã¡ã€ã«èªèŸŒã¿ã®ããã°ã©ã ãäœããŸãããåœç¶äœã®åé¡ãç¡ãèªããããã§ããã
ããå¥ã®æ©çš®ã«ç§»æ€ãããšå
ã®ãã¡ã€ã«ã¯ãããŸã§ãOSã«äŸåããæ¹è¡ã³ãŒãã䜿çš
ããŠããããã§ãããå
ã®æ©çš®ã§äœæããéå»ã®ããŒã¿ãèªããªãããšãæãããã§
ãããã®å Žåæ°æ©çš®ã®ãã¡ã€ã«åœ¢åŒã¯ãå
ã®æ©çš®ãã®ãã¡ã€ã«ãšãæ°æ©çš®ãã®ãã¡ã€
ã«ãèªãããã«æ©çš®äŸåã®æ¹é ããããããæ°æ©çš®ãã®ããã¹ãã¢ãŒããç¡èŠããŠ
ãå
ã®æ©çš®ãã«äžèŽããç¹å¥ãªã³ãŒããæžãããšã«ãªããŸãã
ãã®å ŽåãåŠçç³»å®çŸ©åäœãã§ã¯ãªããæ©çš®äŸåãã§æãããšãããœã§ãããã
ããããªããœã¯æ©ãã§ããããã°ã©ããŒã«ã¯äœã®åœ¹ã«ãç«ã¡ãŸããã
Tomohiko Sakamoto wrote in message <91q712$5bk$1...@itcnews.itc.sony.co.jp>...
>C ã®å
¥éæžã« scanf("%d", &a); ãšã ãæžããŠããã®ã¯ã ãã§ãã
>ãšã©ãŒããã§ãã¯ããŠããŸããããããã
>
> if (scanf("%d", &a) != 1) { printf("å
¥åãšã©ãŒ\n"); exit(1); }
>
>ãšæžããŠããã°ãscanf ãããã»ã©å«ãããããšã¯ãªãã£ãã§ãããã
...
>C ã® scanf() ã¯ããšã©ãŒåŠçãå®å
šã«ããã°ã©ãã«ãŸãããŠããã®ã§ãã
>ãããã仿§ãªã®ã§ãããããªã®ã«ãæ®éã®äººã¯ããããããªãã§ãscanf()
>ãæªè
ã«ããŠããŸã£ãŠããã®ã§ãã
ããŒãããã¡ãããšããšã©ãŒãã§ãã¯ããã€ããã§ã
while (scanf("%d", &a) != 1) {
printf("ã ããæ°å€ãå
¥ããã£ãŠã°ã\n");
}
ãšæžããŠããŸããã¡ãªããšãèãããšããscanf()ãå«ãããçç±ãã¯ã
æ®éã®äººããšã©ãŒåŠçãããªãããã§ã¯ãªãããããªãããšæãã®ã§ããã
scanf()ããŸãããšããã°ãããã¯ã
ã»scanf()ã䜿ããããªããããªå±é¢ã§ã¯ããããŠããæ°å€ãªã©ãå
¥ããŠ
ãšã³ã¿ãŒããŒãå©ãããã§ããã®å
¥åã¯è¡æåã§ããã
ã»ãªã®ã«ãscanf()ã¯ãæååäœã®ã¹ããªãŒã æåãªã®ã§ãæ°å€ã®åã
é£ã¹ãŠããŸã£ããæ¹è¡ã³ãŒããã¹ããªãŒã ã«æ®ãã
ãšãã仿§ã«ããã®ã ãšæããŸãã
åå¿è
ããããå匷ã®ããã«ãã¹ãããã°ã©ã ãæžããšããå
¥åãã¹ã«ã¯
ããã»ã©æ°ã䜿ãå¿
èŠã¯ãªããšæããŸãããscanf()ãšgetchar()ãçµã¿å
ãããŠäœ¿ã£ããããŠäžèšã®ä»æ§ã«èšã¡åããããšããã®ã¯ããããŠãã®
åå¿è
ãããäžåºŠã¯éãéã ãšæããŸãã®ã§ã
# ç§ãæã¯ãŸããŸããã
ããããæå³ã§ã¯ã
fgets(buf, 1024, stdin);
sscanf(buf, "%d", &a);
ãªã倧äžå€«ã ãšæããŸã(scanf()ã®æ»ãå€ããã§ãã¯ãããšãã£ãšè¯ã)ã
ãã¡ããããã§ã1024æå以äžã®å
¥åããããšå°ãããã§ãããåå¿è
ãããifã®æåã確èªããããã«ãµã³ãã«ããã°ã©ã ãæžããšãã
ãããã80Ã25æåã®ããã¹ã端æ«ã§ç»é¢ã®åå以äžãŸã§æåã§åããŠ
ãããšã³ã¿ãŒããŒãå©ãããšã¯ãŸããªãã§ãããããã
>å¥èšäºã®å²¡ä¹
ããã®
>
>> # ããããŠãscanf ã®äººæ°ãèœã¡ãŠããã®ãããããã scanf ...
>
>ãšããçºèšã«è§ŠçºãããŠãã€ãé·ããªã£ãŠããŸããŸããã
çç±ãããããscanf()ã嫿ªããã®ã¯ã©ãããšæããŸãããããã ã
é«ã確çã§åé¡ãèµ·ãã颿°ã«ã¯ããã£ã±ãåé¡ããããšæãã§ãã
------------------------------------------------------------
åæ© å匥 maeb...@cse.co.jp
http://member.nifty.ne.jp/maebashi/
------------------------------------------------------------
"c.g.green" <cg_...@osa.att.ne.jp> wrote in message
news:91rjco$knu$1...@news.telewaynet.ad.jp...
> æ²³åïŒ æ¥æ¬ïŒ¬ïŒ³ïŒ©ã«ãŒãïŒæ ªïŒã§ãã
>
> 忬ãããããã«ã¡ã¯ã
>
> > >> è¡ã®çµããã®æ¹è¡ã³ãŒãã¯ã¯CR, CR+LF, LF, LF+CRã®åéãããããŸã
> >
> > ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
> > ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
> > ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸãã
>
> ããããå°ãªããšãWin32ã®MS-Cã§ã¯CR, LF+CRã«å¯Ÿå¿ããŠããŸããããããå
ã«
> äŸããããŸãããããããã¬ãŒã§ãã©ã€ãã©ãªãœãŒã¹ã§ã確èªããŠããŸã(^_^;)ã
ã
> ãã¹ãã¢ãŒãã¯ãããŸã§ãæ©çš®äŸåã®ã¢ãŒãã§ããããã«(MS-Cã®ã©ã€ãã©ãªã§ã®
話
> ã§ãã)æžãæ»ãæã«ã¯CR+LFã«å¿
ããããŠããŸããŸãã
ãã®ïŒã¡ãã£ãšãå°ããããã®ã§ããïŒïŒ£èšèªã§ããã¹ãã¹ããªïŒã ã®æ¹è¡ãšèšã£ã
æïŒãã®æ¹è¡ã³ïŒããäŸãã°ãCRããã LF+CRãã®ããã«ïŒæ©çš®ã«ããïŒåãïŒåã«
å€ãããã§ãããããç§ã¯ïŒããŸãŸã§æ¹è¡ãšèšãã°ïŒ'\n' ã²ãšã€ãšæã£ãŠãããã§
ãããããããããšã§ããã°ïŒè¡æ°ãæ°ããã®ã«'\n' ãæ¢ãããã°ã©ã ã¯ïŒæ©çš®ã«
ããæ£ããåããªãå Žåãæããšããããšã§ãããããïŒãœããã®éãã§æ¹è¡ã®åã«
äœããä»ãããšã¯ããããç¥ããŸããããïŒ
--
********************************
< keizi kounoike >
********************************
In article <924tg7$eqj$1...@kmsnews.kms.ac.jp>
"keizi kounoike" <koun...@kms.ac.jp> writes:
> ãã®ïŒã¡ãã£ãšãå°ããããã®ã§ããïŒïŒ£èšèªã§ããã¹ãã¹ããªïŒã ã®æ¹è¡ãšèšã£ã
> æïŒãã®æ¹è¡ã³ïŒããäŸãã°ãCRããã LF+CRãã®ããã«ïŒæ©çš®ã«ããïŒåãïŒåã«
> å€ãããã§ãããããç§ã¯ïŒããŸãŸã§æ¹è¡ãšèšãã°ïŒ'\n' ã²ãšã€ãšæã£ãŠãããã§
> ãããããããããšã§ããã°ïŒè¡æ°ãæ°ããã®ã«'\n' ãæ¢ãããã°ã©ã ã¯ïŒæ©çš®ã«
> ããæ£ããåããªãå Žåãæããšããããšã§ãããããïŒãœããã®éãã§æ¹è¡ã®åã«
> äœããä»ãããšã¯ããããç¥ããŸããããïŒ
æ¹è¡ãæ±ããœãããŠã§ã¢ãæžãå Žå, æ£ããèãæ¹ã ãšæããŸã. ã¿ãŒã²ãã
ãšãªãããã¹ããã¡ã€ã«ãš host environment ã§æ¹è¡ã³ãŒããç°ãªãå Žå,
host environment ã§ã¯ããã°ã©ãã '\n' ã§çµ±äžçã«æ±ãããããªç°å¢ãå¥
å
šã§ããã. ãã®çºã«ã©ã€ãã©ãªã«ããèªã¿æ¿ããèš±ãããŠããã®ã ãšæããŸ
ã.
ããã§ãªãå Žå㯠host environment ãæ³å®ããŠããªã STREAM ãªã®ã§ããã,
host environment ã®ããã¹ãã¢ãŒãã§ open ããããšèªäœã誀ããªã®ã§ã¯ãª
ãã§ãããã. ãã, ãŸããããã±ãŒã¹ãã€ã±ãŒã¹ãªã®ãããããŸãããã©,
host environment ã®æ¹è¡ãããŒã¿ãšãªãå¯èœæ§ãããããã§ããã.
--
Kazuo Fox Dohzono / doh...@hf.rim.or.jp
[12],(6,9),0,0,2
(4/1449/3742)
> > ãã®ïŒã¡ãã£ãšãå°ããããã®ã§ããïŒïŒ£èšèªã§ããã¹ãã¹ããªïŒã ã®æ¹è¡ãš
èšã£ã
> > æïŒãã®æ¹è¡ã³ïŒããäŸãã°ãCRããã LF+CRãã®ããã«ïŒæ©çš®ã«ããïŒåãïŒ
åã«
> > å€ãããã§ãããããç§ã¯ïŒããŸãŸã§æ¹è¡ãšèšãã°ïŒ'\n' ã²ãšã€ãšæã£ãŠãã
ãã§
> > ãããããããããšã§ããã°ïŒè¡æ°ãæ°ããã®ã«'\n' ãæ¢ãããã°ã©ã ã¯ïŒæ©
çš®ã«
> > ããæ£ããåããªãå Žåãæããšããããšã§ãããããïŒãœããã®éãã§æ¹è¡ã®
åã«
> > äœããä»ãããšã¯ããããç¥ããŸããããïŒ
ãã®éãã§ããããŸãŸã§ç§ã¯æ¹è¡ã³ãŒããšèšã£ãŠããŸãããå®ã¯æ£ç¢ºãªæ¥æ¬åŸ¡èš³
ã¯åŸ©æ¹ã§ãããããŒã ããžã·ã§ã³ãšåŒã°ããå³ç«¯ã«ã埩垰ãããŠæ¬¡ã®è¡ã«ãæ¹è¡ãã
ãã®ã§ã埩æ¹ãã§ããã§ãããŸã䜿ãããŸãã(^â^)ãè±èªã§ã¯ã埩垰=ãã£ãªããž
ãªã¿ãŒã³=CR='\r'ãããæ¹è¡=ã©ã€ã³ãã£ãŒã=LF='\n'ããã埩æ¹=ãã¥ãŒã©ã€ã³
=NL='\n'ãã§ããCã§ã®æ¹è¡ã³ãŒã'\n'ã®ãnãã¯newlineã®é æåãšèããŠééããª
ãã§ãããã
ããšããšCã¯UNIXãè²ãŠãèšèªã§ãããå€ãã®UNIXãœãã(ãšãããå°å·é¢ä¿ã®ãœ
ãã)ãããªãæã£ããšèããŠããŸãããã®UNIXã¯LFã䜿çšããŠããŸããããŸã
CP/M->MS-DOSã§ã¯CR+LFã(MACã¯CRã ã£ãããª?)ãNCé¢ä¿ã§ã¯LF+CRçè²ã
ïŒïŒïŒã
ãã®UNIXè³ç£ãç§»æ€ããããšããæãšããã«å°ã£ãã®ããã®æ¹è¡ã³ãŒãã§ããC
ã®ã³ãŒãããšãã£ã¿ã§ãšãã£ããããããšãã¡ã€ã«ãéããš(-_-ã¡)ãããªã³ããããš
(-_-ã¡)ããšèšãããã§ãŸãæåã«ããã®ãNLã³ãŒããšã®æŠãã«æã£ãŠããŸãããã§
ãã
ããã«æäžäž»ãšããŠç»å Žããã®ããããã¹ãã¢ãŒãã§ãããã®ããã¹ãã¢ãŒãã¯
Cã§ã®è¡ã®åãæ±ãã®æŠå¿µã決å®ãããã®ã§ããæååã¯æåã®éãŸãã§'\0'ã§çµäº
ãè¡ã¯'\n'ã§çµäºããããšããçµ±äžé©ãªåãæ±ãæ¹æ³ãCã®ã³ãŒãã«é©çšããã®ã§
ãããããã£ãŠCR='\r'ã¯Cã®ã¢ããªã±ãŒã·ã§ã³ã³ãŒãã®äžã«ã¯çŸããªãããã«ããäº
ã§Cã®ç§»æ€æ§ãé«ããããã§ããå¥ã®èšãæ¹ããããšæ©çš®äŸåããŠããNLã³ãŒããCã
åãæ¢ãã/å容ãã/ç§»æ€ããããã«åºæ¥ãèŠæ Œã§ãããããã£ãŠã¢ããªã±ãŒã·ã§ã³
åŽã®æ©çš®äŸååºŠã¯æžããŸãããã©ã€ãã©ãªã¯æ©çš®äŸåããŠããŸãããã®ããæ¹ã¯å€§é
ã«æãUNIXã®è³ç£ãçããæè¯ã®æ¹æ³ã§ããã
åŒå®³ãæããŸãã1ãã€ãã®NLã³ãŒãç³»ã§æžãããããã¹ããã¡ã€ã«ã2ãã€ãã®
NLã³ãŒãåŠçç³»ã§è¡ä¿®æ£ãããšæååãµã€ãºãåãã§ã次ã®è¡ã®æåã®äžæåãLF
ã³ãŒãã§äžæžããããŠããŸãã®ã§ã(LFãCR+LFã«ãªãã®ã§1æåå¢ããŠããŸã)ããã
ã¹ãã¢ãŒãã¯æ©çš®äŸåã®LFã³ãŒãç³»ãCãåãæ¢ããããã®èŠæ Œãªã®ã§ããããŸã§ã
æ©çš®äŸåã§ããããšãå¿ããŠã¯ãããŸããã
Cã§ã¯å
šãŠã®ã©ã€ãã©ãªã®äžæžããèš±ã仿§ã«ãªã£ãŠããŸãã誰ããèªåèªèº«ã®
fgets()ãfopen()ãæšæºæäŸã®ã©ã€ãã©ãªã®æ¿ããã«æžããã®ã§ãããããã£ãŠãã®
NLã³ãŒãã®æ±ããæšæºæäŸã®ã©ã€ãã©ãªãšéããã¡ã€ã«/ã¢ããªã±ãŒã·ã§ã³å Žåãæ£
ããå¯ŸåŠæ¹æ³ã¯ã¢ããªã±ãŒã·ã§ã³ã«CRçã®åŠçãå
¥ããã®ã§ã¯ãªãããã®ã¢ããªã±ãŒ
ã·ã§ã³çšã®å
¥åºåã©ã€ãã©ãªãæžãããšã ãšæããã ãã©(^â^)ïŒïŒïŒããã¯ããã
ãªæèŠããããšæããŸããGNUçã§ã¯'x'çã颿°åã®åã«ã€ããŠæç¢ºã«åºå¥ã§ããã
ãã«ããŠããŸãããç§ã¯ãã®æ¹æ³ããšãŠãæ°ã«å
¥ã£ãŠããŸã(^â^)ããããUNXIè³ç£
ãçããããŒã¿ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®ç«å Žããã¯ã©ã€ãã©ãªã®æžãæãã§ããã
ã(^â^)ã
æ©çš®äŸåã§æãããšããå¿ããŠãããåã¯ãæèããŠããªãããšèšãããšã¯ãã
ã ãè¯ãèŠæ Œã§ãããšèšãããšã§ããããã(^â^)ã
ããã«ããŠã倱瀌ãªãã€ããããªãã®ãããã«ã¯ã
"c.g.green" <cg_...@osa.att.ne.jp> writes:
> Cã§ã¯å
šãŠã®ã©ã€ãã©ãªã®äžæžããèš±ã仿§ã«ãªã£ãŠããŸãã誰ããèªåèªèº«ã®
> fgets()ãfopen()ãæšæºæäŸã®ã©ã€ãã©ãªã®æ¿ããã«æžããã®ã§ãããããã£ãŠãã®
> NLã³ãŒãã®æ±ããæšæºæäŸã®ã©ã€ãã©ãªãšéããã¡ã€ã«/ã¢ããªã±ãŒã·ã§ã³å Žåãæ£
> ããå¯ŸåŠæ¹æ³ã¯ã¢ããªã±ãŒã·ã§ã³ã«CRçã®åŠçãå
¥ããã®ã§ã¯ãªãããã®ã¢ããªã±ãŒ
> ã·ã§ã³çšã®å
¥åºåã©ã€ãã©ãªãæžãããšã ãšæããã ãã©(^â^)ïŒïŒïŒããã¯ããã
> ãªæèŠããããšæããŸããGNUçã§ã¯'x'çã颿°åã®åã«ã€ããŠæç¢ºã«åºå¥ã§ããã
> ãã«ããŠããŸãããç§ã¯ãã®æ¹æ³ããšãŠãæ°ã«å
¥ã£ãŠããŸã(^â^)ããããUNXIè³ç£
> ãçããããŒã¿ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®ç«å Žããã¯ã©ã€ãã©ãªã®æžãæãã§ããã
> ã(^â^)ã
æ£ããå¯ŸåŠæ¹æ³ã®å
¥åºåã©ã€ãã©ãªãæžããšããã®ã¯ fopen ãªã©ãããæ¿ã
ããšèšãããšã§ãã? ã ã£ããå察ã§ããã.
> ããã«ããŠã倱瀌ãªãã€ããããªãã®ãããã«ã¯ã
ããããæ¥ããããããšã¯ãããŠãã ãã.
--
======================//
Hiroaki Matsumoto // ze...@f5.dion.ne.jp
//======================
>> 忬ããã¯ãæ¹è¡ã³ãŒããäœã§ãã£ãŠããã§ã¯ãªãããOS ã®æ¹è¡ã³ãŒ
>> ããäœã§ãã£ãŠãããšæžãããŠããŸãã
>ãŸãç§ã«ã¯ãOS ã®æ¹è¡ã³ãŒããã«ã€ããŠãªãããã§èšåããã®ãæå³ãããã
åã®èšäºã«ãæžããŸããããã«ãïŒtext mode ã®ïŒstream ã«ããã衚
çŸãšãã¡ã€ã«äžã«ããã衚çŸã®é¢ä¿ã¯åŠçç³»å®çŸ©ã§ããèŠæ Œã§ã¯ãã¡ã€
ã«äžã«ããã衚çŸã«ã€ããŠäœãèŠå®ããŠããŸããããç¹å¥ã®ç®çãæã£
ãåŠçç³»ã§ãªãéãããã® OS ã§ããã¹ããã¡ã€ã«ãšæ±ããã圢åŒã«ã
ãŸãã
ïŒåæãªåœ¢åŒã«ããŠãæ§ããŸããããå®çšæ§ãä¹ãããªããŸã
>ãããããã¡ã€ã«ã«æ¹è¡ã³ãŒããå«ãããã¹ããæžãããæã©ã®ã³ãŒãã«ããã
>ã³ã°ãããã¯ã¢ããªã±ãŒã·ã§ã³ã®ä»äºã§ãã
ããã¯ãbinary mode ã§ã®ããšã§ããtext mode ã§ã¯ã©ã€ãã©ãªãŒã®ä»
äºã§ãã
>ãããã£ãŠå
èšäºã(ãªãããã®ã¢ããª
>ã±ãŒã·ã§ã³ã§äœæããã)ãã¡ã€ã«ããã®å
¥åã§å°ã£ãŠããå ŽåãOS ã®æ¹è¡ã³ãŒãã
>ããã£ããäœã®åºæºã«ãªãã®ãå
šãåãããŸãããç§ã¯äœããã®ã¢ããªã±ãŒã·ã§ã³/
>èšæž¬åš/NC/LANäžã®äœããã®æ©åšçããåãå
¥ãããã¡ã€ã«ãã€ã¡ãŒãžããŸãã
ãã®ãã¡ã€ã«ã text mode ã§æ±ãã圢åŒãªã®ããããã§ãªãã®ããå€
æããåºæºã«ãªããŸãããã®ãã¡ã€ã«ã®åœ¢åŒèªäœãåãã£ãŠããªãå Žå
ã¯åœ¹ã«ç«ã¡ãŸãããããã¡ã€ã«ã®åœ¢åŒã調ã¹ãã®ãå
ã§ãã
>ãã®å Žåäœããã®ãšãã£ã¿ãŒçã®è¡šç€ºæ©åšã§ã©ã®ããã«èŠããŠããããšãã«ãã
>ã¢ã³ãããŒã¹ãã§ã³ããŒããããšå
ã®ã³ãŒãããªããªã®ãã¯ç¢ºå®ã§ããŸããããã®å Ž
>åå¯äžã®ç¢ºèªæ¹æ³ã¯ãããã¬ãŒã§èŠãããšã§ããEBCDICã®è©±ãããããå§ãŸããŸãã
ãããã¬ãŒã§äœãèŠãã®ã§ãããããstdio ã®ãããã¡ãŒã®äžèº«ã§ãèŠ
ãã®ã§ããããã
UNIX ã® od ã³ãã³ãããããã«çžåœããã³ãã³ãã§èŠãã®ãæ®éã ãš
æããŸãããã®ãããªã³ãã³ãããªãã·ã¹ãã ã§ããç°¡æçãªã C ã§
10 è¡çšåºŠã§æžããããã°ã©ã ã§ããããèªäœããã°ããã§ããã
>> 2.*p2ãstr[1024]ãè¶ ããŠã¢ã¯ã»ã¹ããŠããå Žåã§ãã
>ã®2.ã®å Žåã«ã€ããŠæ¹è¡ã³ãŒãã«èšåããŠããããšã«çç®ããŠãã ããã
text mode ã§æ±ããªããã¡ã€ã«ã text mode ã§æ±ãããšããŠããããš
ãçè§£ãããŠããªãããã§ããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> åŒå®³ãæããŸãã1ãã€ãã®NLã³ãŒãç³»ã§æžãããããã¹ããã¡ã€ã«ã2ãã€ãã®
>NLã³ãŒãåŠçç³»ã§è¡ä¿®æ£ãããšæååãµã€ãºãåãã§ã次ã®è¡ã®æåã®äžæåãLF
>ã³ãŒãã§äžæžããããŠããŸãã®ã§ã(LFãCR+LFã«ãªãã®ã§1æåå¢ããŠããŸã)ããã
>ã¹ãã¢ãŒãã¯æ©çš®äŸåã®LFã³ãŒãç³»ãCãåãæ¢ããããã®èŠæ Œãªã®ã§ããããŸã§ã
>æ©çš®äŸåã§ããããšãå¿ããŠã¯ãããŸããã
æ¹è¡ã³ãŒãã LF ã§ã CR+LF ã§ã text mode ã§åãæ±ããåŠçç³»ãã
ãã®ã§ããããã
ïŒãåãæ±ããŠããããã«èŠãããåŠçç³»ã§ã¯ãªããããã¥ã¢ã«çã§ã
ïŒã®ããã«èŠå®ããŠããåŠçç³»ã®ããšã§ã
ããã§ãªããã°ãtext mode ã§åãæ±ããªã圢åŒã®ãã¡ã€ã«ã text
mode ã§åãæ±ãããšããŠããã ãã®ããšã§ãããæåŸ
ããŠããçµæã
åŸãããªããŠåœç¶ãšãèšããŸãã
> Cã§ã¯å
šãŠã®ã©ã€ãã©ãªã®äžæžããèš±ã仿§ã«ãªã£ãŠããŸãã誰ããèªåèªèº«ã®
>fgets()ãfopen()ãæšæºæäŸã®ã©ã€ãã©ãªã®æ¿ããã«æžããã®ã§ãããããã£ãŠãã®
ãããªããšã¯ãããŸããã
èŠæ Œã§èŠå®ãããŠããå€éšãªã³ã±ãŒãžãæã€èå¥åã¯ãå€éšãªã³ã±ãŒãž
ãæã€èå¥åãšããŠäºçŽãããŠããŸããäºçŽãããŠããèå¥åãããã°
ã©ã äžã§å®çŸ©ïŒå®£èšãããšæªå®çŸ©åäœã«ãªããŸãã
ïŒãã®ä»ã«ãäºçŽãããŠããèå¥åããããŸã
ããã¯ãã³ã³ãã€ã©ãŒãã©ã€ãã©ãªãŒé¢æ°ãèªèããŠç¹å¥ãªãªããžã§ã¯
ããçæããããšãèš±ããŠããããã§ãããã®å Žåãã³ã³ãã€ã©ãŒã眮
ãæããŠããŸããªããšãã³ã³ãã€ã«æãšã©ãŒã«ãªãå¯èœæ§ããããŸãã
>ãã«ããŠããŸãããç§ã¯ãã®æ¹æ³ããšãŠãæ°ã«å
¥ã£ãŠããŸã(^â^)ããããUNXIè³ç£
>ãçããããŒã¿ãã«ãªã¢ããªã±ãŒã·ã§ã³ã®ç«å Žããã¯ã©ã€ãã©ãªã®æžãæãã§ããã
>ã(^â^)ã
ãã©ã€ãã©ãªã®æžãæããã§ã¯ããŸãããåŠçç³»å
šäœã®çœ®ãæãããšãªã£
ãŠããŸãããšããããŸãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
çå±±ãããããã«ã¡ã¯ã
å
èšäºãšé¢ããŠé¢åãªã®ã§åããŸãããã¢ããªã±ãŒã·ã§ã³ãäœãåºããã¡ã€ã«åœ¢
åŒã¯Cèšèªã®èŠæ Œãšã¯å
šãå¥ç©ã§ããããããªãã£ãŠçå±±ããã®èšäºã¯åœ¹ã«ç«ã¡ãŸã
ããæ¹å€ã ãã§å
èšäºã®ãã°ã«å¯Ÿãæé ãå¯èœæ§ã瀺ããŠããŸããããOS ã§ããã¹
ããã¡ã€ã«ãšæ±ããã圢åŒããäœã§ããããšãããã¹ãã¢ãŒãããäœã§ããããšãå
æãªåœ¢åŒãã§ããããšæ¢ã«èšå€§ãªã¢ããªã±ãŒã·ã§ã³ãååšãããã«å¯Ÿå¿ããããã°ã©
ã ãšããŒã¿ãååšããã®ã§ããçå±±ããã®èšäºã¯ãã§ã³ã£ãšèªãã§ã¯æ¹å€ããã§ã³ã£
ãšèªãã§ã¯æ¹å€ãã§ã€ãªãããå
šãç¡èŠããŠããããã«ããæããŸããã
ãOSã®æ¹è¡ã³ãŒããã¯ã¢ããªã±ãŒã·ã§ã³ããã°ã©ããŒã«ãšã£ãŠã¯å¹»æ³ã«éããŸã
ãã
æ¹è¡ã«é¢ããæ©çš®äŸåãã©ã€ãã©ãªã«é èœããã®ã¯èª€ã£ãéžæã ãšèšããããŸã
ããæ¹è¡ã³ãŒããæ±ã£ãŠããã©ã€ãã©ãªã倿Žããªãå Žåfprintf()/fscanf()ãå§ã
ãšããå
šãŠã®é¢æ°ãæžããããå¿
èŠãåºãŠããŠãããã¯æ£ããéžæã§ããããã
ANSI-Cã¯æšæºé¢æ°ãæžãæãå¯èœã§ããããšãä¿èšŒããŠããŸããäœã®ããããæ©çš®äŸ
åéšåãã©ã€ãã©ãªã«é èœããããšãå¯èœã«ããããã ãšç§ã¯æã£ãŠããŸãã
å
èšäºã«ããã以å€ã®äººã«ãå
šã圹ã«ç«ããªãæ
å ±ã«ãªã£ãŠæ¥ãããšããè©«ã³ã
ãŠãããŸãm(__)mã
> å
èšäºãšé¢ããŠé¢åãªã®ã§åããŸãããã¢ããªã±ãŒã·ã§ã³ãäœãåºããã¡ã€ã«åœ¢
>åŒã¯Cèšèªã®èŠæ Œãšã¯å
šãå¥ç©ã§ããããããªãã£ãŠçå±±ããã®èšäºã¯åœ¹ã«ç«ã¡ãŸã
>ããæ¹å€ã ãã§å
èšäºã®ãã°ã«å¯Ÿãæé ãå¯èœæ§ã瀺ããŠããŸããããOS ã§ããã¹
ããã¹ããã¡ã€ã«ãšããŠæ±ããªããã¡ã€ã«ãããã¹ããã¡ã€ã«ãšããŠæ±
ãããšããŠããããšãééãã§ãããšããææã§ãã
ãããåããã°ã
(1) ãã¡ã€ã«ã®åœ¢åŒã倿ãããor
(2) ããã¹ããã¡ã€ã«ãšããŠåãæ±ãããšãæ¢ãã
ãšãã察å¿çãèãããããšæããŸãã
>æãªåœ¢åŒãã§ããããšæ¢ã«èšå€§ãªã¢ããªã±ãŒã·ã§ã³ãååšãããã«å¯Ÿå¿ããããã°ã©
>ã ãšããŒã¿ãååšããã®ã§ãã
ããã«å€§éã®ããŒã¿ãšããã°ã©ã ãããããšããçŸå®ã«åããªãã®ã§ã
ãã°ãå°ãªããšãããŒã¿ãããã°ã©ã ã®ä¿®æ£ãå¿
èŠã«ãªããŸãã
>çå±±ããã®èšäºã¯ãã§ã³ã£ãšèªãã§ã¯æ¹å€ããã§ã³ã£
>ãšèªãã§ã¯æ¹å€ãã§ã€ãªãããå
šãç¡èŠããŠããããã«ããæããŸããã
æéãæãŠäœãã»ã©æã£ãŠããããã§ã¯ãããŸããã®ã§ãééã£ãŠãã
ç¹ã®ã¿ãææããŠããŸããC ã«å¯Ÿããèª€è§£ãæ¡å€§åçç£ããŠæ¬²ãããªã
ããã§ãã
> ãOSã®æ¹è¡ã³ãŒããã¯ã¢ããªã±ãŒã·ã§ã³ããã°ã©ããŒã«ãšã£ãŠã¯å¹»æ³ã«éããŸã
>ãã
æ¹è¡ã³ãŒããéã£ãŠãããªããããã倿ããã°æžã¿ãŸãã
> æ¹è¡ã«é¢ããæ©çš®äŸåãã©ã€ãã©ãªã«é èœããã®ã¯èª€ã£ãéžæã ãšèšããããŸã
ãã®ãããªåŠçç³»ãçŸå®ã«ãããŸããã
>ANSI-Cã¯æšæºé¢æ°ãæžãæãå¯èœã§ããããšãä¿èšŒããŠããŸããäœã®ããããæ©çš®äŸ
>åéšåãã©ã€ãã©ãªã«é èœããããšãå¯èœã«ããããã ãšç§ã¯æã£ãŠããŸãã
7.1.3 Reserved identifire
[...]
- All identifiers with external linkage in any of following
subcluases (including the future library directions) are
always reserved for use as an identifiers with external
linkage.
[...]
No other identifiers are reserved. If the program declares or
defines an identifier with the same name as an identifier
reserved in that context (other than as allowed by 7.1.7), the
behavior in undefined.
ã§ãã®ã§ãèŠæ Œã§èŠå®ãããŠãã颿°ãå®çŸ©ãããšæªå®çŸ©åäœã«ãªããŸ
ããããªãã¡ããANSI-Cã¯æšæºé¢æ°ãæžãæãå¯èœã§ããããšãã¯ä¿èšŒ
ãããŠããŸããã
> å
èšäºã«ããã以å€ã®äººã«ãå
šã圹ã«ç«ããªãæ
å ±ã«ãªã£ãŠæ¥ãããšããè©«ã³ã
>ãŠãããŸãm(__)mã
ééãã fj ã®èªè
ã«åºãã£ãŠã»ãããªãã®ã§æçš¿ããŠããŸãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> ãOSã®æ¹è¡ã³ãŒããã¯ã¢ããªã±ãŒã·ã§ã³ããã°ã©ããŒã«ãšã£ãŠã¯å¹»æ³ã«éããŸã
> ãã
ãããšããä»ã®OSã®Cããã°ã©ã ã§äœã£ãããã¹ããã¡ã€ã«ã®è¡åºåãããCã®
ã©ã€ãã©ãªé¢æ°ã§æ£ããè¡åºåããšæ±ãããªãããšããããããåé¡ã«å¯ŸããŠ
ãªããããããCã®èšèªä»æ§ã§ãããããããããŒã¿äº€æããã°ã©ã ãã«è¡æ
åã®æšæºã©ã€ãã©ãªé¢æ°ã¯äœ¿ããŸãããããšããåçã¯çããOKã§ãããïŒ
(ç§ã®çšèªæ³ã«å°ã
ããããªãšããã¯ããããç¥ããŸãããã)
ã§ãæ²³åããã¯ãããã¡ãã£ãšäžè¬åããããŠããæ°ããããã§ãããŸãã§
ã(ãã¹ãŠã®)ã¢ããªã±ãŒã·ã§ã³ã§ãè¡æåã®æšæºã©ã€ãã©ãªé¢æ°ã¯äœ¿ããªã/
èªåã§çœ®ãæããã°ãªããªããã
ãšãã£ããã£ãŠãããã®ããã«èªããã®ããç æµæãæããŠãããšããã§ã¯
ãªãããšæããŸãã
åºæ¬çãªãšãã®ç¢ºèªã§ãã
ã»OSäŸåã®è¡åºåããçšããããã¹ãã ãæ±ããã°ä»æ§ãå
åã¿ããã¢ããªã±ãŒ
ã·ã§ã³ãå€ãã§ããã? (ã§ããããCèšèªã®ããã¹ãã¢ãŒãã¹ããªãŒã ã®ä»
æ§ã®ç¯å²ã§ããã? ...å³å¯ã«ã¯ãã£ãšçã(ããã®åŠçç³»ã䜿ã£ãŠæžãã
ããã¹ãã¯ããã¹ããšããŠèªãããçšåºŠ?)ã§ããããã)
ã»OS(ããã³ã©ã€ãã©ãª)ãæ³å®ãã以å€ã®è¡åºåããçšããããã¹ããããã¹
ãã¢ãŒãã§æ±ãã®ã¯ã¡ãã£ãšã ãªãª(Cèšèªä»æ§ã®åå€ã®)話ã§ããã?
ã»ããfgetsããããã(alien textãèªãã)æ©èœããã€ãšãæåŸ
ãããŠãã®
ãªããããã¯ãéå€§ãªæåŸ
ããªããã¯ã仿§ã®èª€è§£ããªããã¯ãåŠæ³ãã§ã
ãã? ãããã¯ã ãªã§ããããã€ããªã¢ãŒãã䜿ã£ãŠããŒã¿äº€æãããŸãã
ãããšããçã«ãªããŸããã?
ã»ãããOSã«ãã£ãŠè¡åºåãã«éããããããšãããããç¥ããªãã£ãããªãã
ãããããäºã§ããããã€ããªã¢ãŒãã䜿ã£ãŠããŒã¿äº€æãããŸãããããš
ããçã«ãªããŸããã?
ã©ã£ãé£ãéã£ãŠãŸãã?
åç°æŠåž
paonekoãããããã«ã¡ã¯ã
> ãããšãæ²³åãããããç§ã¯ä»äºãããæ§æ§ãªæ¹è¡ã³ãŒãã®ããã¹ããã¡ã€ã«
> ãæ±ãã®ã§ãCã§ã®ããã¹ãã¢ãŒãã¯äœ¿ã(ã)ãŸããããšããã°ãããã§çµãã
> ã®ãããªæ°ãããŸããã
ããããããã¹ãã¢ãŒããæ©çš®ã«äŸåããæ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã®ã¯éåžžã«ç°¡
åã§ã(^â^)ãåã«ã©ã€ãã©ãªã®è©²åœéšåã®ã³ãŒããã»ãã®å°ãä¿®æ£ããã°è¯ãã®ã§
ããæ¹è¡ã³ãŒãã®åŠçã¯ã©ã€ãã©ãªã®ç¹å®é¢æ°ã«ã«ãã»ã«åãããŠããŸãããã®ã«ã
ã»ã«åããã³ãŒããä¿®æ£ããã«ãã€ããªã¢ãŒãã䜿çšãããšãè¡å
¥åºå颿°ãå§ããš
ããå€ãã®é¢æ°ã䜿çšäžå¯ã«ãªããæ©çš®äŸåã³ãŒããã¢ããªã±ãŒã·ã§ã³å
ã«ããµãã
ããšã«æãã®ã§ããããã§ã¯äœã®ããã«ANSI-Cãããã¹ãã¢ãŒããå®ããã®ãåãã
ãŸããã
åç°ãããããã«ã¡ã¯ã
> ã§ãæ²³åããã¯ãããã¡ãã£ãšäžè¬åããããŠããæ°ããããã§ãããŸãã§
> ã(ãã¹ãŠã®)ã¢ããªã±ãŒã·ã§ã³ã§ãè¡æåã®æšæºã©ã€ãã©ãªé¢æ°ã¯äœ¿ããªã/
> èªåã§çœ®ãæããã°ãªããªããã
> ãšãã£ããã£ãŠãããã®ããã«èªããã®ããç æµæãæããŠãããšããã§ã¯
> ãªãããšæããŸãã
ç§ã¯å
èšäºã®ãgcc ã§ã¯å®è¡ã§ããã®ã«ãVC++ã§ã¯å®è¡ãããšäŸå€åŠçãèµ·ã
ããã«çããŠãããªå¯èœæ§ãããããšç€ºããã ãã§äžè¬åããã€ããã¯æããŸããã
åå ãå¥ã®ãšããã«ãã£ãã®ã§ãããããã§çµãã£ãŠãããã°è¯ãããã§ããããã
ãã®æ®µéã§ãCã®èŠæ Œã§ã¯å¿
ã'\n'ã«ãªãããšèšã£ãŠããŸããšãã¯åãããŠã人ãå
å ãèŠå€±ãå¯èœæ§ãæããšæããã§ããèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠãã人ãå±
ãã
ãã§ãããã
ãããšããã¯ã³ã¹ããããã¬ãŒã¹ã§å€æ°ã確èªããã€ã¡ãŒãžã©ããã«åããŠãã
ã確èªãããäºã¯åºæ¬äºé
ãšæã£ãŠããŸãããããããå§ãããããã§ããã¯ã³ã¹
ããããã¬ãŒã¹ã§åäœç¢ºèªããŠãããå€åèªå·±è§£æ±ºã§ããå
容ã ãšæãã®ã§ãããã®
代ããããã®åäœã¯èŠæ ŒãšããŠã¯ã©ããªãã ããããšããæ¹è¡ã³ãŒããåé¡ã«æã£ã
ãšããã°(å
èšäºã§ã¯å®éã«ã¯åé¡ã«ãªã£ãŠãŸããã)ãæ¹è¡ã³ãŒããæ£ããåŠçã§ã
ãªããã ãã©...ãã®ãããªæçš¿ã«ãªã£ãŠããã¯ãã§ããã
> ç§ã¯å
èšäºã®ãgcc ã§ã¯å®è¡ã§ããã®ã«ãVC++ã§ã¯å®è¡ãããšäŸå€åŠçãèµ·ã
> ããã«çããŠãããªå¯èœæ§ãããããšç€ºããã ãã§äžè¬åããã€ããã¯æããŸããã
> åå ãå¥ã®ãšããã«ãã£ãã®ã§ãããããã§çµãã£ãŠãããã°è¯ãããã§ããããã
> ãã®æ®µéã§ãCã®èŠæ Œã§ã¯å¿
ã'\n'ã«ãªãããšèšã£ãŠããŸããšãã¯åãããŠã人ãå
> å ãèŠå€±ãå¯èœæ§ãæããšæããã§ããèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠãã人ãå±
ãã
> ãã§ãããã
åå¿è
ã£ãœã人ãžã®(äžè¬çãª)çã«ããªãã§ãèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠã
ã人ãåãã®ç¹æ®ãªçãæ¹ãããã®ããããããªãããã§ãã
æåã®è³ªåã®æ¹ã ã£ãŠçµå±ãfgetsã¯äœ¿ããªãæ¹ãè¯ãã®ã§ããããããšæ··ä¹±
ããŠããŸã£ãããã§ã
ãšããã§ã
> åºæ¬çãªãšãã®ç¢ºèªã§ãã
ã¯ãé£ãéããªããã§ããããã§ãããã? (OKãªãç¹ã«èšãããšã¯ãããªã
ãã ããã©ãã)
åç°æŠåž
> åå¿è
ã£ãœã人ãžã®(äžè¬çãª)çã«ããªãã§ãèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠã
> ã人ãåãã®ç¹æ®ãªçãæ¹ãããã®ããããããªãããã§ãã
ããããããã°ãèŠæ Œã¯ããã®ç°å¢ãã£ãŠã©ãããæå³ã§ãã?
ãã€ããªã¢ãŒãã§èªã¿æžãããŠãè¡åºåãã®éããèªåã§æèããŠããã°ã©ã
ã³ã°ããã®ã¯ããŸãèšèªä»æ§ããã¯å€ããŠãŸããå¥ã«èª°ãæå¥èšã£ãŠãŸãããã?
ããããçšéã«ããã¹ãã¢ãŒãã䜿ã£ãã誀ãã ãšããç¹ããåæããŠããã
ããã°äœã®åé¡ããªããã§ããã
åç°æŠåž
> ããããããã¹ãã¢ãŒããæ©çš®ã«äŸåããæ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã®ã¯éåžžã«ç°¡
>åã§ã(^â^)ãåã«ã©ã€ãã©ãªã®è©²åœéšåã®ã³ãŒããã»ãã®å°ãä¿®æ£ããã°è¯ãã®ã§
>ããæ¹è¡ã³ãŒãã®åŠçã¯ã©ã€ãã©ãªã®ç¹å®é¢æ°ã«ã«ãã»ã«åãããŠããŸãããã®ã«ã
ãããããã圹ã«ç«ããªãèšäºãã§ãããã
ãŸãããã©ã€ãã©ãªã®è©²åœéšåããã©ã®ããã«ããŠèŠã€ããã®ã§ããã
ããã©ã€ãã©ãªãŒã®ãœãŒã¹ãæã£ãŠããç°å¢ã䜿ãã人ã¯å€ããªããšæ
ããŸãã
次ã«ãäœåãæžããŸããããã«ãèŠæ Œã§äºçŽãããŠãã颿°ã C ãã
ã°ã©ã ã§å®çŸ©ããããšã¯æªå®çŸ©åäœã«ãªããŸããç¹å®ã®åŠçç³»ã§ã¯ã©ã€
ãã©ãªãŒé¢æ°ã®çœ®ãæãã«æåããããç¥ããŸããããã©ã®ãããªåŠç
ç³»ã§ãã§ãããšã¯éããŸããã
ãã©ã€ãã©ãªã®ç¹å®é¢æ°ããèŠæ Œã§äºçŽãããŠããªã颿°ïŒäžè«ã颿°ïŒ
ã®å Žåã¯æªå®çŸ©åäœã«ãªããŸããããéåžžã®ã³ã³ãã€ã«ïŒãªã³ã¯ïŒæ¹æ³
ã§ã¯ã©ã€ãã©ãªãŒé¢æ°ã®çœ®ãæãã¯ã§ããŸããããã®ãããªé¢æ°ããã
ã°ã©ã ã§å®çŸ©ããŠãã©ã€ãã©ãªãŒé¢æ°ã®åäœãå€ãããªãããšãèŠæ Œã
èŠè«ããŠããããã§ãããã®å Žåã¯ãã©ã€ãã©ãªãŒèªäœïŒ.a fileã
shared objectãDLLãetc.ïŒãäœãå€ããªããã°ãªããŸããã
ãŸããæ¹è¡ã³ãŒãã®å€ææ¹æ³ãå€ããæãã©ã€ãã©ãªãŒã®ä»ã®éšåã«åœ±
é¿ãåºãŠããå¯èœæ§ããããŸãïŒäŸãã°ãç°å¢ãã¡ã€ã«ãªã©ãèªã¿èŸŒã
颿°ãçšæãããŠããåŠçç³»çïŒããããªã£ãŠãããšãã©ã€ãã©ãªãŒã®
ä¿®æ£ç¯å²ãéåžžã«åºããªã£ãŠããŸãã
ã§ããããªãããšããããã«ãç°¡åã§ãããã®ããã«èšããªãã§äžããã
ïŒãã¯ãåŠæ³ãæ±ãããŠããããã§ãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
>ãã®æ®µéã§ãCã®èŠæ Œã§ã¯å¿
ã'\n'ã«ãªãããšèšã£ãŠããŸããšãã¯åãããŠã人ãå
>å ãèŠå€±ãå¯èœæ§ãæããšæããã§ããèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠãã人ãå±
ãã
>ãã§ãããã
忬ããã®èšäºã¯ã
In article <91q712$5bk$1...@itcnews.itc.sony.co.jp>,
saka...@sm.sony.co.jp (Tomohiko Sakamoto) writes:
>ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
>ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
>ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸããUnix äžã§ãWindows ã®ãã¡ã€ã«ããªãŒ
>ãã³ãããªããŠã®ã¯ã ãã§ããã
ã§ãããããããåŒçšããæã¯ã
In article <91rjco$knu$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
>> ãããfopen(..., "rb") ã§ã¯ãªããfopen(..., "r") ã§ãªãŒãã³ãããšã
>> ããã¯ããã¹ãã¢ãŒãã§ããããOS ã®æ¹è¡ã³ãŒããäœã§ãã£ãŠããããã°ã©
>> ã äžã§ã¯ã'\n' ã²ãšã€ã«ãªããŸãã
ã®ããã«ãUnix äžã§ãâŠã®ã¯ã ãã§ãããããåã£ãŠããŸããããã®
éšåãéèŠãªæå³ãæã£ãŠããããšã«æ°ã¥ãããªãã£ãã®ã§ããããã
ãããå
ã®åé¡ã®åå ãæ¹è¡ã³ãŒãã ã£ããããã®éšåã«ãã¹ãŠãéçŽ
ããããšããã§ããã
ïŒæ¬åœã«æ¹è¡ã³ãŒããåé¡ã ã£ããã詳ããæžãããŠããã§ããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> In article <92betr$vr$1...@news.telewaynet.ad.jp>,
> "c.g.green" <cg_...@osa.att.ne.jp> writes:
>
> > ããããããã¹ãã¢ãŒããæ©çš®ã«äŸåããæ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã®ã¯éåžžã«ç°¡
> >åã§ã(^â^)ãåã«ã©ã€ãã©ãªã®è©²åœéšåã®ã³ãŒããã»ãã®å°ãä¿®æ£ããã°è¯ãã®ã§
> >ããæ¹è¡ã³ãŒãã®åŠçã¯ã©ã€ãã©ãªã®ç¹å®é¢æ°ã«ã«ãã»ã«åãããŠããŸãããã®ã«ã
>
> ãããããã圹ã«ç«ããªãèšäºãã§ãããã
>
> ãŸãããã©ã€ãã©ãªã®è©²åœéšåããã©ã®ããã«ããŠèŠã€ããã®ã§ããã
> ããã©ã€ãã©ãªãŒã®ãœãŒã¹ãæã£ãŠããç°å¢ã䜿ãã人ã¯å€ããªããšæ
> ããŸãã
>
> 次ã«ãäœåãæžããŸããããã«ãèŠæ Œã§äºçŽãããŠãã颿°ã C ãã
> ã°ã©ã ã§å®çŸ©ããããšã¯æªå®çŸ©åäœã«ãªããŸããç¹å®ã®åŠçç³»ã§ã¯ã©ã€
> ãã©ãªãŒé¢æ°ã®çœ®ãæãã«æåããããç¥ããŸããããã©ã®ãããªåŠç
> ç³»ã§ãã§ãããšã¯éããŸããã
æ¹æ³è«ãšããŠã¯ïŒ
#define fgets my_fgets
ãšããŠïŒèªåã§ my_fgets() ãæžããããªããšãã§ããŸããïŒ
# ã¡ãããšåœéåãããŠããªã OS ã®ã©ã€ãã©ãªã䜿ããªã
# ããã«ããããã«ïŒãã®æã®ããšããããŸãã...
----
Hisao Aoyama éå±± å°å€«
ASTEC Products, Inc. ïŒæ ªïŒã¢ã¹ããã¯ã»ãããã¯ã
aoy...@astec.co.jp
åç°ãããããã«ã¡ã¯ã
> åå¿è
ã£ãœã人ãžã®(äžè¬çãª)çã«ããªãã§ãèŠæ Œã¯ããã®ç°å¢ã§äœæ¥ããŠã
> ã人ãåãã®ç¹æ®ãªçãæ¹ãããã®ããããããªãããã§ãã
åå¿è
ãOJTã§ãããªãèŠæ Œã¯ããã®ç°å¢ãšãããã¿ãŒã³ãæããšèããŠããŸ
ãããã®å Žåã®ãèŠæ Œã¯ãããã¯ããã¹ãã¢ãŒãã§æžãããã æã®'\n'ãæ¢åã®ã
ã¡ã€ã«ãšç°ãªãå Žåã§ãããã
> æåã®è³ªåã®æ¹ã ã£ãŠçµå±ãfgetsã¯äœ¿ããªãæ¹ãè¯ãã®ã§ããããããšæ··ä¹±
> ããŠããŸã£ãããã§ã
ããã§ãããããã¯ç³ãèš³ç¡ãããšãããŸããã
> ã»OS(ããã³ã©ã€ãã©ãª)ãæ³å®ãã以å€ã®è¡åºåããçšããããã¹ããããã¹
> ãã¢ãŒãã§æ±ãã®ã¯ã¡ãã£ãšã ãªãª(Cèšèªä»æ§ã®åå€ã®)話ã§ããã?
ãã¡ããæšæºCèšèªã®ç¯çããã¯å€ããŸãããããæšæºCèšèªä»æ§ãã®ãã®ã
å
ã
æãæ©çš®äŸåã®æ¹è¡ã³ãŒããã©ãæ±ããã«é¢ããŠèšè«ããäžã§ããã¹ãã¢ãŒãã
決ããŠããããã§ããããã©ã€ãã©ãªãæ³å®ãã以å€ã®è¡åºåãã䜿çšããŠããå Ž
åãå¯èœãªãã°ãã³ããŒæäŸã©ã€ãã©ãªã®è©²åœã³ãŒããä¿®æ£ããŠããã¹ãã¢ãŒãã䜿
çšããéã®æ¹ãããèŠæ Œã®ç²Ÿç¥ã«æ²¿ã£ãŠããããã«æããŸããæéãæå°éã§æžã¿
ãŸãã
>æ¹æ³è«ãšããŠã¯ïŒ
>#define fgets my_fgets
>ãšããŠïŒèªåã§ my_fgets() ãæžããããªããšãã§ããŸããïŒ
ããã§ãããç¶æ³ãéå®ããã°å¯èœãªå ŽåããããŸããã(_ _;
ç§ãææããŠããã®ã¯ã
In article <929jnm$or$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
>æãªåœ¢åŒãã§ããããšæ¢ã«èšå€§ãªã¢ããªã±ãŒã·ã§ã³ãååšãããã«å¯Ÿå¿ããããã°ã©
>ã ãšããŒã¿ãååšããã®ã§ãã
In article <9269li$d6a$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
> åŒå®³ãæããŸãã1ãã€ãã®NLã³ãŒãç³»ã§æžãããããã¹ããã¡ã€ã«ã2ãã€ãã®
>NLã³ãŒãåŠçç³»ã§è¡ä¿®æ£ãããšæååãµã€ãºãåãã§ã次ã®è¡ã®æåã®äžæåãLF
>ã³ãŒãã§äžæžããããŠããŸãã®ã§ã(LFãCR+LFã«ãªãã®ã§1æåå¢ããŠããŸã)ããã
ã®ããã«ãstdio å
šäœã«ãããŠæ¹è¡æåã倿Žããå Žåã§ãããã®å Žå
ã«ã¯ãéå±±ããã®æ¹æ³ã¯äœ¿ããªããšæããŸãã
ïŒãŸãŠããstdio ã®å
šéšã®é¢æ°ããã¯ãã§çœ®ãæããŠãstdio å
šéšãæž
ïŒãçŽãã°ã§ãããããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
éå±±ãããããã«ã¡ã¯ã
> #define fgets my_fgets
>
> ãšããŠïŒèªåã§ my_fgets() ãæžããããªããšãã§ããŸããïŒ
>
> # ã¡ãããšåœéåãããŠããªã OS ã®ã©ã€ãã©ãªã䜿ããªã
> # ããã«ããããã«ïŒãã®æã®ããšããããŸãã...
ããã§ãããæ°ãã«ããã°ã©ã ãçµãå Žåãã®å¯Ÿå¿ã§ååã§ãã
> 次ã«ãäœåãæžããŸããããã«ãèŠæ Œã§äºçŽãããŠãã颿°ã C ãã
> ã°ã©ã ã§å®çŸ©ããããšã¯æªå®çŸ©åäœã«ãªããŸããç¹å®ã®åŠçç³»ã§ã¯ã©ã€
æªå®çŸ©åäœã«æãã®ã¯æ¢ã«æã颿°ãå¥ç®çã®é¢æ°ã«æžãæããŠããŸã£ãæã§
ãããã®å ŽååŠçç³»äŸåã®æ¹è¡ã³ãŒããCèšèªèŠæ Œã®æ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã ããª
ã®ã§å
šãåé¡ãããŸãããããã¯ãã€ã¯ããœããããã®ä»ã®ãã³ããŒãæ¢ã«è¡ã£ãŠã
ãäœæ¥ãã®ãã®ã§ããããã§æ£ããåããªãæãããããã¯ãæªå®çŸ©åäœããšèšãã
ã«ãã°ãšèšã£ãŠããã§ããã©(^_^;)ã
ãèŠæ Œã§äºçŽãããŠãã颿°ã C ããã°ã©ã ã§å®çŸ©ããããšãã¯ãã³ããŒãã©
ã€ãã©ãªã®éçºè
ã«åã£ãŠæ¥ã
ã®äœæ¥ãã®ãã®ã§ãããæªå®çŸ©åäœããšããå¿
ç¶æ§ã¯
å
šããããŸãããCèšèªã®ãã³ããŒãéãŸã£ãŠäœæããCèšèªã®èŠæ Œã«ãããªæèšãçŸ
ããããããããŸããã
èŠæ Œã¯ãæ¢ã«æã颿°åãšåã颿°åã®é¢æ°ãæžãããšããå
æã颿°ã«çœ®ãæ
ãã£ãŠãã®é¢æ°ã䜿çšãããããšèšã£ãŠããèš³ã§ããŸãŒãªã³ã«ãŒã®ä»æ§ã§ããªããã®
眮ãæããèµ·ããæããå
ã®é¢æ°ãšæ°ãã颿°ãå¥ä»æ§ã ãšåäœãä¿èšŒã§ããªãããš
èšããŸãŒããããåœç¶ã®äºãèšã£ãŠããããã§ããã
æããæžãæãã颿°ã«time颿°ãæããŸããäŸãã°æã®NEC-9801ã«ã¯ãªã¢ã«ã¿
ã€ã ã¯ããã¯ã«å¹Žãç¡ãã£ãã®ã§ãŸãŒå€ãªã€ã³ããªã¡ã³ããããŠããããã§ããã¿ãŒ
ã²ããã«ãªã¢ã«ã¿ã€ã ã¯ããã¯ãç¡ãå Žåã¯ã€ã³ã¿ãŒãã«ã¿ã€ããŒããtime颿°ã
äœã£ããããŸãã(^â^)ãããŒã©ã³ã/ã¿ãŒãCã颿°ã«ãã°ãèŠæ Œå¯Ÿå¿é
ããæã£ã
ã®ã§æžãæããŠããŸãã颿°ãæžãæããŠåããªããã°ãæªå®çŸ©åäœãã§ã¯ãªããã°
ã§ã(^_^;)ã
éå±±ããããããŸããã
æçš¿ããã£ã¡ãã«ãªã£ãŠããŸããŸããm(__)mã
>> #define fgets my_fgets
>>
>> ãšããŠïŒèªåã§ my_fgets() ãæžããããªããšãã§ããŸããïŒ
>>
> ããã§ãããæ°ãã«ããã°ã©ã ãçµãå Žåãã®å¯Ÿå¿ã§ååã§ãã
ãã®æ¹æ³ã¯ã<KATE.00De...@sims211.trad.pfu.co.jp> ã«ãæžã
ãããã«ãéå®ãããç¶æ³ã§ãã䜿ããŸããã
ããããããªããšã¯ãªããšäž»åŒµãããã®ã§ããããæ²³åããããããå Ž
åã
In article <9269li$d6a$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
> åŒå®³ãæããŸãã1ãã€ãã®NLã³ãŒãç³»ã§æžãããããã¹ããã¡ã€ã«ã2ãã€ãã®
>NLã³ãŒãåŠçç³»ã§è¡ä¿®æ£ãããšæååãµã€ãºãåãã§ã次ã®è¡ã®æåã®äžæåãLF
>ã³ãŒãã§äžæžããããŠããŸãã®ã§ã(LFãCR+LFã«ãªãã®ã§1æåå¢ããŠããŸã)ã
In article <929jnm$or$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
> æ¹è¡ã«é¢ããæ©çš®äŸåãã©ã€ãã©ãªã«é èœããã®ã¯èª€ã£ãéžæã ãšèšããããŸã
>ããæ¹è¡ã³ãŒããæ±ã£ãŠããã©ã€ãã©ãªã倿Žããªãå Žåfprintf()/fscanf()ãå§ã
ãšãããã1ãã€ãã®NLã³ãŒãç³»ã§æžãããããã¹ããã¡ã€ã«ã2ãã€ã
ã®NLã³ãŒãåŠçç³»ãã§æ±ãå Žåã«ãfprintf() ãã©ã®ããã«å®çŸ©ãçŽã
ã瀺ããŠäžãããããã§ãã³ãŒã系㯠UNIX ã Windows çã§äœ¿ãããŠ
ãã ASCII ãšããŸããã€ãŸãã'\n' ãš NL 㯠0xaïŒïŒåãå€ïŒãCR
㯠0xd ãšããŸãã
>> 次ã«ãäœåãæžããŸããããã«ãèŠæ Œã§äºçŽãããŠãã颿°ã C ãã
>> ã°ã©ã ã§å®çŸ©ããããšã¯æªå®çŸ©åäœã«ãªããŸããç¹å®ã®åŠçç³»ã§ã¯ã©ã€
> æªå®çŸ©åäœã«æãã®ã¯æ¢ã«æã颿°ãå¥ç®çã®é¢æ°ã«æžãæããŠããŸã£ãæã§
>ãã
èŠæ Œã«ã¯ãããªèŠå®ã¯ãããŸããããã®åã«ããæªå®çŸ©åäœãã®æå³ã
çè§£ãããŠããªãããã§ããã
>ãã®å ŽååŠçç³»äŸåã®æ¹è¡ã³ãŒããCèšèªèŠæ Œã®æ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã ããª
>ã®ã§å
šãåé¡ãããŸããã
æªå®çŸ©åäœãªã®ã§ããããåŠçç³»ãã³ã³ãã€ã«æãšã©ãŒãšããããšãèŠ
æ Œã¯èªããŠããŸãã
>ããã¯ãã€ã¯ããœããããã®ä»ã®ãã³ããŒãæ¢ã«è¡ã£ãŠã
>ãäœæ¥ãã®ãã®ã§ãã
æ²³åããã䜿ã£ãããšãããåŠçç³»ã§ã¯ãéè¯ãæãéãã«ãã£ãã ã
ã®ããšã§ããããæªå®çŸ©åäœã§ãããããã®åŠçç³»ã§ãããããã®åäœ
ã«ãªãããšèŠå®ãããŠããããç¥ããŸããã
>ããã§æ£ããåããªãæãããããã¯ãæªå®çŸ©åäœããšèšãã
>ã«ãã°ãšèšã£ãŠããã§ããã©(^_^;)ã
ãèªåã®ç¡ç¥ã宣äŒããŠäœãè¯ãããšãããã®ã§ããããã
> ãèŠæ Œã§äºçŽãããŠãã颿°ã C ããã°ã©ã ã§å®çŸ©ããããšãã¯ãã³ããŒãã©
>ã€ãã©ãªã®éçºè
ã«åã£ãŠæ¥ã
ã®äœæ¥ãã®ãã®ã§ãããæªå®çŸ©åäœããšããå¿
ç¶æ§ã¯
>å
šããããŸãããCèšèªã®ãã³ããŒãéãŸã£ãŠäœæããCèšèªã®èŠæ Œã«ãããªæèšãçŸ
>ããããããããŸããã
ããããªæèšãã <KATE.00De...@sims211.trad.pfu.co.jp> ã«
瀺ããã®ã§ããããããèªãèœåãããæã¡ã§ç¡ãããã§ããã
> èŠæ Œã¯ãæ¢ã«æã颿°åãšåã颿°åã®é¢æ°ãæžãããšããå
æã颿°ã«çœ®ãæ
>ãã£ãŠãã®é¢æ°ã䜿çšãããããšèšã£ãŠããèš³ã§ããŸãŒãªã³ã«ãŒã®ä»æ§ã§ããªããã®
>眮ãæããèµ·ããæããå
ã®é¢æ°ãšæ°ãã颿°ãå¥ä»æ§ã ãšåäœãä¿èšŒã§ããªãããš
>èšããŸãŒããããåœç¶ã®äºãèšã£ãŠããããã§ããã
ããã§ã¯ããããèŠå®ãããŠããç®æã瀺ããŠäžããããã¡ãããæ²³å
ãããåŠæ³ãããŠããç®æã§ã¯ãªãã
ïŒããŸãŒãªã³ã«ãŒã®ä»æ§ã§ããªããšããããšèªäœãèŠæ Œã®ç¯å²å€ã§ãã
ïŒããšãçè§£ãããŠãªãããã§ããããã
> æããæžãæãã颿°ã«time颿°ãæããŸãã
ãã®åŠçç³»ã§ã§ããã ãã§ããããèŠæ Œã¯ããããã§ããããšãä¿èšŒã
ãŠããŸããããã¡ãããæªå®çŸ©åäœã§ããããã§ããªãããšãä¿èšŒããŠ
ããŸããã
>ã®ã§æžãæããŠããŸãã颿°ãæžãæããŠåããªããã°ãæªå®çŸ©åäœãã§ã¯ãªããã°
>ã§ã(^_^;)ã
æ¬åœã«èŠæ Œããåç¥ãªããã§ãããfj ã®èªè
ã«åãåŠæ³ãã°ããŸããª
ãã§äžããã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
> ããããªæèšãã <KATE.00De...@sims211.trad.pfu.co.jp> ã«
> 瀺ããã®ã§ããããããèªãèœåãããæã¡ã§ç¡ãããã§ããã
ãã®ãŒããæŒããŠãã¡ãŒã«äœæã«é£ãã§è¡ãã ããªãã§ããã©(^_^;)ãèªããŸã
ãããŒã
çå±±ãããããã«ã¡ã¯ã
> æ¬åœã«èŠæ Œããåç¥ãªããã§ãããfj ã®èªè
ã«åãåŠæ³ãã°ããŸããª
> ãã§äžããã
B.W.ã«ãŒããã³ã¯ãã®ãããªäºã«ãã ããã¯æã£ãŠããªãããã§ãããããã°ã©
ãã³ã°èšèªC(ANSIèŠæ Œæºæ )ãã®äžã§ã¯æŒç¿ãšããŠãfopenãš_fillbufãæç€ºçãªãã
ãæŒç®ã䜿ããã«ããã£ãŒã«ãã䜿ã£ãŠæžããªãããã³ãŒããµã€ãºãšå®è¡éåºŠãæ¯èŒ
ããããã®ããã«æšæºé¢æ°ã®æžãæããäžããŠããŸããããªãã¯B.W.ã«ãŒããã³ã®C
èšèªæç§æžã®èšè¿°ã«åŒ·ãå察ããç«å Žã«ããããã§ããã
ãæªå®çŸ©åäœããšèšãã®ã¯ã䜿çšããŠã¯ãããªãåäœã§ã¯ãããŸãããèŠæ Œäžå
æãåŸãããªãã£ãããã¢ãŒããã¯ãã£äžæ±ºå®ããäºãäžå¯èœãªåäœã§ãããæªå®çŸ©
åäœãã¯ãã³ããŒã®èªãã®è²¬ä»»ã«ãããŠãã®æåãæ±ºå®ãããã®ã§ããNULLã¢ãã¬ã¹
ããã®ããŒã¿ã®èªèŸŒã¿æžããå§ããšããè²ã
ãªåäœãå«ãŸããŸãã
> æªå®çŸ©åäœãªã®ã§ããããåŠçç³»ãã³ã³ãã€ã«æãšã©ãŒãšããããšãèŠ
> æ Œã¯èªããŠããŸãã
ãã£ãããã®åŠçç³»ã¯äœåŠã®äŒç€Ÿã®ãªããšèšã補åã§ãããæšæºé¢æ°ã«ãã°ãã
ãå Žåãã®åŠçç³»ã§ã¯ãšããã£ãŠå¯Ÿå¿ããã®ã§ããããããªè£œåããã£ãã誰ãã€ã
ã誰ãè²·ãã®ã§ããããã
å®éãæšæºé¢æ°ããæžãæãã§ããªãã®ã¯äžéšã®ããããåæã®Cèšèªã€ã³ã¿ã
ãªã¿ã ãã§ãããããªèŠæ Œã«ãã ãããã«B.W.ã«ãŒããã³ã®ããã«æšæºé¢æ°ã®æžãæ
ããæå°ããæ°ã¯ãããŸãããã
ãšããããã²ãšããš: ãæ²³åãã, ãããŒã¿ããªãã£ãªããç¥ããªãããš
èšã£ãŠããã ããã°ãããã§ããã©ã
<92gtvl$cj0$1...@news.telewaynet.ad.jp>ã®èšäºã«ãããŠ
cg_...@osa.att.ne.jpããã¯æžããŸããã
cg_kawa> ãæªå®çŸ©åäœããšèšãã®ã¯ã䜿çšããŠã¯ãããªãåäœã§ã¯ãããŸãããèŠæ Œäžå
cg_kawa> æãåŸãããªãã£ãããã¢ãŒããã¯ãã£äžæ±ºå®ããäºãäžå¯èœãªåäœã§ãããæªå®çŸ©
cg_kawa> åäœãã¯ãã³ããŒã®èªãã®è²¬ä»»ã«ãããŠãã®æåãæ±ºå®ãããã®ã§ããNULLã¢ãã¬ã¹
cg_kawa> ããã®ããŒã¿ã®èªèŸŒã¿æžããå§ããšããè²ã
ãªåäœãå«ãŸããŸãã
ãããããªãã®ã§ããã°ãšããã, èŠæ Œã«ãæªå®çŸ©åäœããšèŠå®ãããŠã
ãããšãå§ããã®ãã©ãããšæãã®ã§ãã....
ISO/IEC 9899:1999 ãã:
3.4.3 undefined behavior
behavior, upon use of a nonportable or erroneous program
construct or of erroneous data, for which this International
Standard imposes no requirements
NOTE Possible undefined behavior ranges from ignoring the
situation completely with upredictable results, to behaving
during translation or program execution in a documented manner
characteristic of the environment (with or without the issuance
of a diagnostic message), to terminating a translation or
execution (with the issuance of a diagnostic message).
æªå®çŸ©åäœããããŠäœ¿ã以äžã¯, ãªã«ãèµ·ããŠãæå¥ã¯ãããªãã§ããã?
cg_kawa> > æªå®çŸ©åäœãªã®ã§ããããåŠçç³»ãã³ã³ãã€ã«æãšã©ãŒãšããããšãèŠ
cg_kawa> > æ Œã¯èªããŠããŸãã
cg_kawa> ãã£ãããã®åŠçç³»ã¯äœåŠã®äŒç€Ÿã®ãªããšèšã補åã§ãããæšæºé¢æ°ã«ãã°ãã
cg_kawa> ãå Žåãã®åŠçç³»ã§ã¯ãšããã£ãŠå¯Ÿå¿ããã®ã§ããããããªè£œåããã£ãã誰ãã€ã
cg_kawa> ã誰ãè²·ãã®ã§ããããã
# éã«, æ²³åããã¯èªåã®äœ¿ã£ãŠããåŠçç³»ã§ã©ããªãã, ã©ã®ãããªå Ž
# åã§ã 100%èªèº«ãæã£ãŠæèšã§ãããã§ãã?
æšæºé¢æ°ã«ãã°ãããã®ã§ããã°ã©ã€ãã©ãªã亀æããã®ãçã§ããã.
ã©ã€ãã©ãªã®äžã®ã¢ãžã¥ãŒã«ã亀æãã, ã§ããããã§ããã©.
cg_kawa> å®éãæšæºé¢æ°ããæžãæãã§ããªãã®ã¯äžéšã®ããããåæã®Cèšèªã€ã³ã¿ã
cg_kawa> ãªã¿ã ãã§ãããããªèŠæ Œã«ãã ãããã«B.W.ã«ãŒããã³ã®ããã«æšæºé¢æ°ã®æžãæ
cg_kawa> ããæå°ããæ°ã¯ãããŸãããã
ãããŒã¿ããªãã£ãèããã®ã§ããã°ãèŠæ Œã«ãã ããã¹ãã§ã. éã«,
ãããŒã¿ããªãã£ãªããç¡èŠããšããã®ã§ããã°ã©ããªããšãããŠãããŸ
ããŸããã, äžãäžãèãããšãã®ãããªããš (æšæºé¢æ°ã®æžæã) ãæ
å°ããæ°ã«ã¯ãªããŸããã, ç§ã¯.
# ããã£ã±ãªãã®ãšãã¯é€ã.
--
åå€å±å€§åŠ å·¥åŠéš é»åå·¥åŠç§ å¹³ç°ç 究宀
å°é åç·
ta...@hirata.nuee.nagoya-u.ac.jp (Takao Ono) writes:
> ãããŒã¿ããªãã£ãèããã®ã§ããã°ãèŠæ Œã«ãã ããã¹ãã§ã. éã«,
> ãããŒã¿ããªãã£ãªããç¡èŠããšããã®ã§ããã°ã©ããªããšãããŠãããŸ
> ããŸããã, äžãäžãèãããšãã®ãããªããš (æšæºé¢æ°ã®æžæã) ãæ
> å°ããæ°ã«ã¯ãªããŸããã, ç§ã¯.
ããŒã¿ããªãã£ã®é«ãããã°ã©ã ãæžããããã«ãªãèšç·Žã
ãšãŠãéèŠãªã®ã¯ãããŸã§ããããŸãããããäžãäžãã®ãªã¹ã¯
ããã£ãŠã§ãã 倧åŠã§ãããã
æ¢åã®èŠæ Œãæè¡ã«ãšããããªããå¯èœæ§ããèããæ©äŒã
ããŸã«ã¯äœã£ãŠããã ããã°ãšããããŸãã
ããããæããããšããããããŠé£ããã®ã¯æ¿ç¥ããŠãŸããã
æšæ æ 䌞
> > ããããªæèšãã <KATE.00De...@sims211.trad.pfu.co.jp> ã«
> > 瀺ããã®ã§ããããããèªãèœåãããæã¡ã§ç¡ãããã§ããã
>
> ãã®ãŒããæŒããŠãã¡ãŒã«äœæã«é£ãã§è¡ãã ããªãã§ããã©(^_^;)ãèªããŸã
> ãããŒã
ããã¯æ²³åããã®èª€è§£ã§ãããæŒãããšãèšããã¥ãŒã¹ãªãŒãã«äŸåããããš
ããããšçå±±ããã¯èšã£ãŠãã®ã§ã¯ãªããŠããã®Message-IDã§identifyããã
èšäºã§ç€ºãããšãã£ããã£ãŠãã®ã§ãããããéå»ã®ãã¥ãŒã¹èšäºãæã瀺ã
æ®éã®(ãšãããã»ãšãã©å¯äžã®)æ¹æ³ã§ãã
åç°æŠåž
> B.W.ã«ãŒããã³ã¯ãã®ãããªäºã«ãã ããã¯æã£ãŠããªãããã§ãããããã°ã©
> ãã³ã°èšèªC(ANSIèŠæ Œæºæ )ãã®äžã§ã¯æŒç¿ãšããŠãfopenãš_fillbufãæç€ºçãªãã
> ãæŒç®ã䜿ããã«ããã£ãŒã«ãã䜿ã£ãŠæžããªãããã³ãŒããµã€ãºãšå®è¡éåºŠãæ¯èŒ
> ããããã®ããã«æšæºé¢æ°ã®æžãæããäžããŠããŸããããªãã¯B.W.ã«ãŒããã³ã®C
> èšèªæç§æžã®èšè¿°ã«åŒ·ãå察ããç«å Žã«ããããã§ããã
ããã¯ãããŸã§æŒç¿ã§ããããæšæºé¢æ°ãæ¥åžžçã«æžãæãããšèŠããŠããã
ã§ã¯ãªãã§ãããã
ãã®æã®é¡æããã®æ¬ã§å¥œãã§åãäžããããŠããçç±ã«ã¯ãCèšèªã(æšæºã©
ã€ãã©ãªãèªåèªèº«ã§æžããã»ã©ã®)ã·ã¹ãã èšè¿°èœåãæã£ãŠãããšç€ºãæ
å³ã倧ããã§ããããèªåã§(æšæºé¢æ°ä»¥å€ã®)ã©ã€ãã©ãªãã©ãã©ãäœãããš
ã¯ã«ãŒããã³ã®æå³ã«æ²¿ããšæããŸãããæšæºé¢æ°ãæ®æ®µããæžãããããšã
ãã€ããã§ã¯ãŸãããªããšæããŸãã
ïŒ åŠçã«å®éã«ãããããšããã°my_fopenãªã©ã®ååã䜿ãã§ããããåžžèçã«ã
> å®éãæšæºé¢æ°ããæžãæãã§ããªãã®ã¯äžéšã®ããããåæã®Cèšèªã€ã³ã¿ã
> ãªã¿ã ãã§ãããããªèŠæ Œã«ãã ãããã«B.W.ã«ãŒããã³ã®ããã«æšæºé¢æ°ã®æžãæ
> ããæå°ããæ°ã¯ãããŸãããã
äŸãã°gccã§ãæé©åã¬ãã«ãäžãããšstrlenãªããã¯ã€ã³ã©ã€ã³å±éãããŸ
ãããããã®åŸãèªåã®strlenããªã³ã¯ããããšããŠãããã§ã«æšæºçãã€ã³
ã©ã€ã³å±éããã¡ãã£ãŠãŸãããç¡é§ã§ãã颿°ãžã®ãã€ã³ã¿ã«strlenãå
¥ã
ããããŠãã€ã³ã©ã€ã³å±éã§ããªãå Žæããã£ããã2ã€ã®strlenãå
¥ã亀ã
ãããšã«ãªããŸãã
ã§ããã(æšæºé¢æ°ã®ã€ã³ã©ã€ã³å±é)ã¯èŠæ Œã§èš±ãããåäœã§ãããèªåã®
strlenããªã³ã¯ããããšããããšãã誀ãã§ããããæå³ã©ããã®åäœãããª
ããŠã(ãããã¯ããããããšãããšããã«äŸãã°ãªã³ã«ãã³ã¢ãã³ãããŠã)
èŠæ Œéãã§ãã
ã ãã ã話ããããŠãæ°ããããã§ããã
ã»ãªããããã¹ãã¢ãŒãã§ãããªãããšãããã¹ãã¢ãŒãã§ããããšããã®ã
ãå
šãããããã®ã§ãã
ã»ã©ããªOSã®ããã¹ãã§ãããã¹ãã¢ãŒãã§æ±ããã©ã€ãã©ãª
ã¯ã ãªã§ãããã(ããããEBCDIC/EBCDIKããISO10646ãŸã§ãäœã®äºåæ
å ±ã
ãªãæ±ãã®ã¯ç¡çãšãããã®ã§ãããã)
CRãšLFã®çµã¿åããçšåºŠã®ãããç¹æ®ãªçšéã«éã£ããšããŠããããå€ãã¡ã
ããšå°ãããšããããŸããããäŸãã°ããCR+LFã§è¡ã®çµãã衚ãããšããçŽ
æã®ã·ã¹ãã ã§ããCRã ãããšããLFã ããã§è¡ã®çµããšèŠãªããŠããŸããšã
ããã§ãªãã€ããã®ä»ã®ããã°ã©ã ãšäºææ§ããªããªã£ãŠããŸããŸãã(CRã
ãã£ãŒã«ãåºåããšããŠäœ¿ãããã°ã©ã ãªããŠã®ãããããã)
äŸãã°C++ã§
ã»ã©ããªCR/LFã®çµã¿åããã§ã'\n'ã«å€æããã¹ããªãŒã
ãã©ã€ãã©ãªãšããŠäœãã®ã¯ãäœã®åé¡ããªããšæããŸããã䟿å©ãªããšãã
ããšæããŸãã
ã§ããæšæºã©ã€ãã©ãªã眮ãæãã¡ããã®ã¯(ããšãããŸããŸããŸãè¡ãåŠç
ç³»ãã䜿ããªããšããŠã)ãããŒãã¯ã£ãããã£ãŠãã ããããšæã£ã¡ããã
ã§ããã
åç°æŠåž
åç°ãããããã«ã¡ã¯ã
>> ããããªæèšãã <KATE.00De...@sims211.trad.pfu.co.jp> ã«
>> 瀺ããã®ã§ããããããèªãèœåãããæã¡ã§ç¡ãããã§ããã
> ãã®Message-IDã§identifyããã
> èšäºã§ç€ºãããšãã£ããã£ãŠãã®ã§ãããããéå»ã®ãã¥ãŒã¹èšäºãæã瀺ã
> æ®éã®(ãšãããã»ãšãã©å¯äžã®)æ¹æ³ã§ãã
ãªãã»ã©ã倱瀌ããŸããm(__)mããã¥ãŒã¹ã°ã«ãŒãã¯çµéšãæµ
ããã®ã§(^â^)ã
ãã®éšåãèªãæ¹æ³ããæãé ããŸããããç§ã¯Outlook Express 5.5ã䜿çšããŠã
ãŸãã
åç°ãããããã«ã¡ã¯ã
ã©ãããã®ãã¥ãŒã¹ã°ã«ãŒãã¯æ··ä¹±ããŸãããªãæåäºäŸãèšã£ã人ãã倱æäº
äŸã瀺ããŠãã蟌ããããã®ã§ãããã
> ããã¯ãããŸã§æŒç¿ã§ããããæšæºé¢æ°ãæ¥åžžçã«æžãæãããšèŠããŠããã
> ã§ã¯ãªãã§ãããã
æžãæããäºã«ãã£ãŠåŸãããã·ã¹ãã ã«å¯Ÿããçè§£ã®åäžãçã£ãŠããŸãããŸ
ããã®æ¬ã¯æšæºé¢æ°ãã©ããã£ãŠæžãããšèšãéçºè
åãã®å
¥éã§ãããããã§ãã
> ãã®æã®é¡æããã®æ¬ã§å¥œãã§åãäžããããŠããçç±ã«ã¯ãCèšèªã(æšæºã©
> ã€ãã©ãªãèªåèªèº«ã§æžããã»ã©ã®)ã·ã¹ãã èšè¿°èœåãæã£ãŠãããšç€ºãæ
> å³ã倧ããã§ãããã
ãæžããã»ã©ããšèšããŸãã...ãµã€ãCã§æžããŠãŸãããïœãããŒãããCã©ã€
ãã©ãªãã¢ã»ã³ãã©ã§ããäºäŸããã£ããã£ãŠããã®ã§ããããããããçŸåšã®ã³ã³
ãã€ã©æè¡ãRICSçã§ã¯ã¢ã»ã³ãã©ãšããå€ããäºã¯ç¡ãã...ã
> èªåã§(æšæºé¢æ°ä»¥å€ã®)ã©ã€ãã©ãªãã©ãã©ãäœãããš
> ã¯ã«ãŒããã³ã®æå³ã«æ²¿ããšæããŸãããæšæºé¢æ°ãæ®æ®µããæžãããããšã
> ãã€ããã§ã¯ãŸãããªããšæããŸãã
>
> ïŒ åŠçã«å®éã«ãããããšããã°my_fopenãªã©ã®ååã䜿ãã§ããããåžžèç
ã«ã
ããããæšæºé¢æ°ã«ãéå±€æ§é ãããã®ã§ããã§ã¯æ£ç¢ºãªçè§£ã¯åŸãããŸããã
åŠçã«ã¯ããŒã«ã«ãªã©ã€ãã©ãªã®ã³ããŒãæž¡ãæžããã¿ã¢ã¯ã»ã¹ãèš±å¯ãããªãªãžã
ã«ã¯æžããã¿çŠæ¢ã®ãŸãŸèªã¿åºãã®ãèš±å¯ããã®ãæ£ããéã§ãããããããããã
ã§ããããªãã©ã€ãã©ãªãæžãããããããªæå°ã¯ããŸããã(^â^)ã
ããŒã©ããã©ã€ãã©ãªãŒã®æžãæããšèšãã®ãåéããããŠããããã§ãã
(^â^)ãç§éã¯ã¢ããªã±ãŒã·ã§ã³çšã®ãããžã§ã¯ãå°çšã©ã€ãã©ãªãŒãäœããã®äžã§
æšæºé¢æ°ããªãŒããŒã©ã€ãããã®ã§ãããªã³ã«ãŒã¯éåžžåäžå颿°ã®åªå
é äœã決
ãŸã£ãŠããã®ã§ãããå©çšããŠããã³ããŒã©ã€ãã©ãªãŒåŽã®æšæºé¢æ°ãç¡èŠãããã
ããžã§ã¯ãå°çšã©ã€ãã©ãªãŒåŽã®é¢æ°ã䜿çšããããã«makeãèšè¿°ããŸãã
> äŸãã°gccã§ãæé©åã¬ãã«ãäžãããšstrlenãªããã¯ã€ã³ã©ã€ã³å±éãããŸ
> ãããããã®åŸãèªåã®strlenããªã³ã¯ããããšããŠãããã§ã«æšæºçãã€ã³
> ã©ã€ã³å±éããã¡ãã£ãŠãŸãããç¡é§ã§ãã颿°ãžã®ãã€ã³ã¿ã«strlenãå
¥ã
> ããããŠãã€ã³ã©ã€ã³å±éã§ããªãå Žæããã£ããã2ã€ã®strlenãå
¥ã亀ã
> ãããšã«ãªããŸãã
>
> ã§ããã(æšæºé¢æ°ã®ã€ã³ã©ã€ã³å±é)ã¯èŠæ Œã§èš±ãããåäœã§ãããèªåã®
> strlenããªã³ã¯ããããšããããšãã誀ãã§ããããæå³ã©ããã®åäœãããª
> ããŠã(ãããã¯ããããããšãããšããã«äŸãã°ãªã³ã«ãã³ã¢ãã³ãããŠã)
> èŠæ Œéãã§ãã
ãªãäžæãè¡ãæ¹æ³ãç¥ã£ãŠããã«ãããããããäžæããããªãäºäŸãæ¢ããŠ
説åŸããããšããã®ãå
šãçè§£ã§ããŸããããªãïŒäœã®ããã«ïŒãã¢ããªã±ãŒã·ã§ã³
ãäœæããŠãã人éãç¥ãããã®ã¯äžæãè¡ãæ¹æ³ã§ãããªãæåäŸã倱æäŸã§åŠå®
ããã®ã§ããïŒã
> ã»ã©ããªOSã®ããã¹ãã§ãããã¹ãã¢ãŒãã§æ±ããã©ã€ãã©ãª
> ã¯ã ãªã§ãããã(ããããEBCDIC/EBCDIKããISO10646ãŸã§ãäœã®äºåæ
å ±ã
> ãªãæ±ãã®ã¯ç¡çãšãããã®ã§ãããã)
ãªãã§äœã®äºåæ
å ±ããªãæ±ãããšããçºæ³ãåºãŠããã®ãåãããŸãã
(^_^;)ããµã€ãæ¹è¡æ
å ±ã"t"ã§äžããŠããŸããããããã«ç§ããããªããžã«ã«ãªæ
æ¡ããèŠããªããã§ããã©(^_^;)ãããããã¯ãŒãã³ã°ãéçºå°çšã©ã€ãã©ãªã«çµã¿
蟌ãäºã¯æçšãããããŸããããè¡ã®äžã«CRãæ®ã£ãŠããã®ãææããŠãããã ãã§
ãå©ãã人ããŸãããã(^â^)ã
> CRãšLFã®çµã¿åããçšåºŠã®ãããç¹æ®ãªçšéã«éã£ããšããŠããããå€ãã¡ã
> ããšå°ãããšããããŸããããäŸãã°ããCR+LFã§è¡ã®çµãã衚ãããšããçŽ
> æã®ã·ã¹ãã ã§ããCRã ãããšããLFã ããã§è¡ã®çµããšèŠãªããŠããŸããšã
> ããã§ãªãã€ããã®ä»ã®ããã°ã©ã ãšäºææ§ããªããªã£ãŠããŸããŸãã(CRã
> ãã£ãŒã«ãåºåããšããŠäœ¿ãããã°ã©ã ãªããŠã®ãããããã)
ã©ã€ãã©ãªã®ããã©ã«ãã®åäœãå€ããªããã°åé¡ç¡ãããã§ãããããã«ç§
ã ã£ãŠã¿ããªã䜿çšããŠããã©ã€ãã©ãªããããªãå€ãããããŸããã(^â^)ã
> ã§ããæšæºã©ã€ãã©ãªã眮ãæãã¡ããã®ã¯(ããšãããŸããŸããŸãè¡ãåŠç
> ç³»ãã䜿ããªããšããŠã)ãããŒãã¯ã£ãããã£ãŠãã ããããšæã£ã¡ããã
> ã§ããã
ããããããŸããããä»äºã§ããããéçºæžã¿ã®ããã¹ããšãã£ã¿ãŒããã£ãŠã
ããã§NCã®EBCDICãä¿®æ£ããããšèšãããããã©ãããŸãïŒããæšæºã©ã€ãã©ãªã眮
ãæãã¡ãããã®ã¯ãä»äºã§ãã
> ãæžããã»ã©ããšèšããŸãã...ãµã€ãCã§æžããŠãŸãããïœãããŒãããCã©ã€
> ãã©ãªãã¢ã»ã³ãã©ã§ããäºäŸããã£ããã£ãŠããã®ã§ããããããããçŸåšã®ã³ã³
> ãã€ã©æè¡ãRICSçã§ã¯ã¢ã»ã³ãã©ãšããå€ããäºã¯ç¡ãã...ã
Cãåºæ¥ãããåºã䜿ãããŠããèšèª(äŸãã°FortranãšãPascalãšã)ã§ã¯ãæš
æºã©ã€ãã©ãªã«ãã®èšèªèªèº«ã§æžããªãéšåããããã®ãå€ãã£ãã®ã§ããOS
ã«è³ã£ãŠã¯ãé«çŽèšèªã§éçºãããšããã®ã¯ãŸã ãŸã åéºã ã£ãã®ã§ãã
æšæºã©ã€ãã©ãªã®ããªãã®éšåã(ããã©ãããOSã®å€§éšåã)Cèªèº«ã§æžããŠ
ãããšããã®ã¯ãC(ãšUnix)ã®èªæ
¢ã ã£ããã§ããããã¡ããã©ã€ãã©ãªãOS
ãæžãããã«ã¯èŠæ Œããå€ããããš(ãããåœæã¯èŠæ ŒãªããŠãªãã£ãã®ã§
ãç§»æ€æ§ãããæãªãããšãããšèšã£ãæ¹ãæ£ç¢ºã)ãå€ã
ãããããåŸãªã
ã®ã§ãããããããããšãã§ããããšããããŠç§»æ€æ§ã®ç ç²ãæå°éã«ãšã©ã
ãããããšãããŸãCã®èªæ
¢ãšãããæå€§ã®å©ç¹ã ã£ãã®ã§ããã
ããããããããäŸé¡ã°ããã«ãŒããã³ãæã¡åºããŠããã®ã¯ãããããæä»£
èæ¯ããã§ããããã®æ¬ã¯Cã®å
¥éæžã§ããã ãã§ãªããCã®å©ç¹ã宣äŒããå
èæžã®åœ¹å²ãå
ŒããŠããã§ãããã第2çã«ãªã£ãŠãäŸé¡ã¯ããŸãå€ã£ãŠãŸã
ãããåž°çäžã§æå
ã«æ¬ããªãã®ã§ãããUnixã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãçš
ããŠããç« ã§ã¯ãå
容ãã·ã¹ãã äŸåã§ããããšãšãããã§ãããŸãããã°ç§»
æ€æ§ã®äœäžã¯æå°éã§ãããšããããšãæã£ãŠãã£ããšèšæ¶ããŠããŸãã
> > ïŒ åŠçã«å®éã«ãããããšããã°my_fopenãªã©ã®ååã䜿ãã§ããããåžžèç
> ã«ã
>
> ããããæšæºé¢æ°ã«ãéå±€æ§é ãããã®ã§ããã§ã¯æ£ç¢ºãªçè§£ã¯åŸãããŸããã
OSã®æ§é ãŸã§çè§£ãããäžã§åŠçç³»ãäœãããã®ã¯ãããããé²è·¯ãç®æãåŠ
çã«ã¯è¯ãç·Žç¿ã«ãªãã§ãããããCããã°ã©ãã³ã°å
¥éã®è¿éãšã¯æããªã
ã®ã§ãéå±€ããã¹ãŠæãããããããšã¯ããŸãããã·ã¹ãã ããã°ã©ãã³ã°ã
å¿
èŠãªäººãªãããã£ãšäžçŽã«é²ãã§ãããã£ãããã£ãŠããããããªãã§ãã
ãã
> > ã§ããã(æšæºé¢æ°ã®ã€ã³ã©ã€ã³å±é)ã¯èŠæ Œã§èš±ãããåäœã§ãããèªåã®
> > strlenããªã³ã¯ããããšããããšãã誀ãã§ããããæå³ã©ããã®åäœãããª
> > ããŠã(ãããã¯ããããããšãããšããã«äŸãã°ãªã³ã«ãã³ã¢ãã³ãããŠã)
> > èŠæ Œéãã§ãã
>
> ãªãäžæãè¡ãæ¹æ³ãç¥ã£ãŠããã«ãããããããäžæããããªãäºäŸãæ¢ããŠ
> 説åŸããããšããã®ãå
šãçè§£ã§ããŸããããªãïŒäœã®ããã«ïŒãã¢ããªã±ãŒã·ã§ã³
> ãäœæããŠãã人éãç¥ãããã®ã¯äžæãè¡ãæ¹æ³ã§ãããªãæåäŸã倱æäŸã§åŠå®
> ããã®ã§ããïŒã
æ²³åããã®åçã¯ãããç¹å®ã®OSã®äžã®ããç¹å®ã®åŠçç³»ã§ã®ããŠããŠãšããŠ
ãªãæçšãªåçã ãšæããŸããäŸãã°fj.os.ms-windows.programmingã§
ãVC++7.0ã§æšæºã©ã€ãã©ãªã眮ãæããã«ã¯?ããšãã質åã®åçãšããŠæ²³å
ãããå
·äœçãªæ¹æ³ã瀺ããããšãããã誰ãäœã«ãæå¥ã¯ãªããšæããŸããã
ããããOSãåŠçç³»ãä»®å®ã§ããªã(ã€ãŸãèŠæ Œã§èŠå®ãããŠããããšä»¥äžã¯
äœãä»®å®ã§ããªã)äžè¬çãªåçãšããŠã¯ïŒïŒïŒã§ããããæ²³åããã®åçã¯
VC++ Programming FAQã«ã¯èŒããŠè¯ããããããªããã©ãC FAQã«ã¯ãã¡ã§ãã
ãã
ã§ãäžã§ç§ãèšã£ãŠãã®ã¯ããfgetsã«éã£ãŠèšãã°æ²³åããã®ç°å¢ã§ã¯ããŸ
ããŸããŸããããããããªããã©ãäžè¬ã«ãæšæºã©ã€ãã©ãªã¯çœ®ãæããŠè¯ãã
ãšèšã£ã¡ããã®ã¯ãŸããã§ããããšããããšã§ãã
> > ã»ã©ããªOSã®ããã¹ãã§ãããã¹ãã¢ãŒãã§æ±ããã©ã€ãã©ãª
> > ã¯ã ãªã§ãããã(ããããEBCDIC/EBCDIKããISO10646ãŸã§ãäœã®äºåæ
å ±ã
> > ãªãæ±ãã®ã¯ç¡çãšãããã®ã§ãããã)
>
> ãªãã§äœã®äºåæ
å ±ããªãæ±ãããšããçºæ³ãåºãŠããã®ãåãããŸãã
> (^_^;)ããµã€ãæ¹è¡æ
å ±ã"t"ã§äžããŠããŸããããããã«ç§ããããªããžã«ã«ãªæ
> æ¡ããèŠããªããã§ããã©(^_^;)ãããããã¯ãŒãã³ã°ãéçºå°çšã©ã€ãã©ãªã«çµã¿
> 蟌ãäºã¯æçšãããããŸããããè¡ã®äžã«CRãæ®ã£ãŠããã®ãææããŠãããã ãã§
> ãå©ãã人ããŸãããã(^â^)ã
ïŒ "t"ã£ãŠã"b"ãã€ããªã(ããã¹ãã¢ãŒã)ãã£ãŠããããšããªïŒ
ãããåãã§ããCRãšLFã ãæ±ãããšããã®ããäžè¬çãªåçã«ã¯ãããŸããµ
ãããããªãããããããªä»®å®ããããäŸã ãšèšãããã ãã§ãããã©ããªã
ãã¹ããããã¹ãã¢ãŒãã§æ±ããŸãããããšããã®ã¯äžè¬ã«ã¯ã ãã£ã§ããã
ãšã
> > CRãšLFã®çµã¿åããçšåºŠã®ãããç¹æ®ãªçšéã«éã£ããšããŠããããå€ãã¡ã
> > ããšå°ãããšããããŸããããäŸãã°ããCR+LFã§è¡ã®çµãã衚ãããšããçŽ
> > æã®ã·ã¹ãã ã§ããCRã ãããšããLFã ããã§è¡ã®çµããšèŠãªããŠããŸããšã
> > ããã§ãªãã€ããã®ä»ã®ããã°ã©ã ãšäºææ§ããªããªã£ãŠããŸããŸãã(CRã
> > ãã£ãŒã«ãåºåããšããŠäœ¿ãããã°ã©ã ãªããŠã®ãããããã)
>
> ã©ã€ãã©ãªã®ããã©ã«ãã®åäœãå€ããªããã°åé¡ç¡ãããã§ãããããã«ç§
> ã ã£ãŠã¿ããªã䜿çšããŠããã©ã€ãã©ãªããããªãå€ãããããŸããã(^â^)ã
ããããã ã£ããã§ãããæ²³åããã¯ããæšæºã®è¡å
¥åºå颿°ã¯ãä»»æã®CRãš
LFã®çµåãããæ±ãããã®ã«çœ®ãæããšãã®ãè¯ãããšãã£ããã£ãŠãã®ããš
æããŸããã
ãããç§ã®æå³ã¯åãã§ãããä»»æã®CRãšLFã®çµåãããæ±ããã©ã€ãã©ãªã«
眮ãæãã¡ããã°OKã§ãããã¯äžè¬çãªåçãšããŠã¯ãŸããããšããããšã§ãã
> > ã§ããæšæºã©ã€ãã©ãªã眮ãæãã¡ããã®ã¯(ããšãããŸããŸããŸãè¡ãåŠç
> > ç³»ãã䜿ããªããšããŠã)ãããŒãã¯ã£ãããã£ãŠãã ããããšæã£ã¡ããã
> > ã§ããã
>
> ããããããŸããããä»äºã§ããããéçºæžã¿ã®ããã¹ããšãã£ã¿ãŒããã£ãŠã
> ããã§NCã®EBCDICãä¿®æ£ããããšèšãããããã©ãããŸãïŒããæšæºã©ã€ãã©ãªã眮
> ãæãã¡ãããã®ã¯ãä»äºã§ãã
ãã¡ããç¹å®ã®ãä»äºã§ã®ç¹å®ã®è§£æ±ºæ³ãšããŠã¯äœãæå¥ãä»ããã€ããã¯ã
ããŸããã
ãŸãããéçºæžã®ããã¹ããšãã£ã¿ã§NCã®EBCDICãä¿®æ£ãããããšããç¹å®ã
ããåããžã®åçãªã(ããã«åŠçç³»ãéãã°)ã¢ãªããªããšæããŸãã(ä»ã«
ããã倿ãã£ã«ã¿äœ¿ã/äœãããšãã#define fgets my_fgetsãšãããŠã³ã³
ãã€ã«ãçŽãããšããã©ã€ãã©ãªãããªããŠããã¹ããšãã£ã¿ã«æãå
¥ããã
ãšããã±ãŒã¹ãã€ã±ãŒã¹ã§è²ããªè§£ã¯ãããšæããŸããã©ã)
ã§ããfj.comp.lang.cã§ã®äžè¬çãªåçãšããŠã¯...
ç¹æ®ãªå Žåã«éãããäžè¬çã«ã
ã»ä»ã®ã·ã¹ãã ã§äœãããããã¹ããããã¹ãã¢ãŒãã§æ±ããŸãããã
ãšãã
ã»æšæºã©ã€ãã©ãªã¯ã©ãã©ã眮ãæããŸãããã
ãšæ²³åããã䞻匵ããããªããããããã
ã»CR/LFã®éãã ããšãããéå®ãããå Žåã«éããäžè¬ã«ã©ããªããã¹ã
ã§ãããã¹ãã¢ãŒãã§æ±ããããšã
ã»æšæºã©ã€ãã©ãªã眮ãæããã®ã¯ã©ããªå Žåã§ãå¯èœã§ããããšã
ã瀺ããããã«å©ç¹ã瀺ããŠããã ããªããšçŽåŸã§ããŸããããã®å Žåããã©
ããªå Žåã§ãããšããã®ã¯ç¡çã§ãããããããèŠæ Œæºæ ã®åŠçç³»ã䜿ãããš
ããã®ã¯ä»®å®ããŠããã ããŠè¯ãã§ãããããšèšãã®ããçããèŠæ Œãã«ãã
ããçç±ã§ãã(ããããäžè¬çãªè°è«ãã©ããŸã§ã§ãããããšããã®ã決ã
ãã®ãèŠæ Œã®åœ¹å²ã§ãã?)
ãããã¯ãäžã®äž»åŒµ(ããã¹ãã¢ãŒãã§æ±ããŸããã/ã©ã€ãã©ãªã眮ãæããŸ
ããã)ã«äœããã®éå®ãä»ãã®ãªãã°ããããã¯ã£ãããããŠæ¬²ããã®ã§ãã
ãVC++7.0ã§ãxxxãxxxããã®ããã¹ããèªãå Žåã®è©±ããšããå
·åãã«ã
ãèŠæ Œãªããç¥ããªããã©ããã¡ã®çŸå Žã§ã¯ãããã£ãŠãããã®ç°å¢ãªããã
ã§OKã ããããšããæèŠãããåã®ããæ¹ã¯å®éã«ã¯ããŸãè¡ãããšãå€ããã
èŠæ Œã§ã¯ãã£ã¡ãã ããªããšã«ãªã£ãŠããé¢åã ãããããæ¹ãè¯ããããšã
ãæèŠããããããæçšã§ãããæ··åããªãã§æ¬²ãããšããäºã§ããã©ã¡ãã®
èšãæ¹ãªã®ããã¯ã£ãããããŠæ¬²ãããã§ãfj.comp.lang.c ã§äœã®éå®ãä»
ããªããã°ãã(èŠæ Œããä»®å®ã§ããªã)Cèšèªäžè¬ã®è©±ããšåãã®ãæ®éã§ãã
ãã
åç°æŠåž
"c.g.green" <cg_...@osa.att.ne.jp> writes:
ç§ã¯Outlook Experssã䜿ã£ãããšããªãã®ã§ãããIEããªã«ãã§URLãšããŠ
news:<KATE.00De...@sims211.trad.pfu.co.jp>
ãšã
nntp://ãã¥ãŒã¹ãµãŒã/<KATE.00De...@sims211.trad.pfu.co.jp>
ãå
¥åããŠã¿ããšã©ããªããŸããïŒ
ïŒ ãã£ãšããå°ããŸããªæ¹æ³ã¯ããã ãããšæãã®ã§ããã詳ããæ¹ã«ãä»»
ïŒ ãããŸãã
åç°æŠåž
> > ã§ããã(æšæºé¢æ°ã®ã€ã³ã©ã€ã³å±é)ã¯èŠæ Œã§èš±ãããåäœã§ãããèªåã®
> > strlenããªã³ã¯ããããšããããšãã誀ãã§ããããæå³ã©ããã®åäœãããª
> > ããŠã(ãããã¯ããããããšãããšããã«äŸãã°ãªã³ã«ãã³ã¢ãã³ãããŠã)
> > èŠæ Œéãã§ãã
>
> ãªãäžæãè¡ãæ¹æ³ãç¥ã£ãŠããã«ãããããããäžæããããªãäºäŸãæ¢ããŠ
> 説åŸããããšããã®ãå
šãçè§£ã§ããŸããããªãïŒäœã®ããã«ïŒãã¢ããªã±ãŒã·ã§ã³
> ãäœæããŠãã人éãç¥ãããã®ã¯äžæãè¡ãæ¹æ³ã§ãããªãæåäŸã倱æäŸã§åŠå®
> ããã®ã§ããïŒã
æ²³åããã®åçã¯ãããç¹å®ã®OSã®äžã®ããç¹å®ã®åŠçç³»ã§ã®ããŠããŠãšããŠ
ãªãæçšãªåçã ãšæããŸããäŸãã°fj.os.ms-windows.programmingã§
ãVC++7.0ã§æšæºã©ã€ãã©ãªã眮ãæããã«ã¯?ããšãã質åã®åçãšããŠæ²³å
ãããå
·äœçãªæ¹æ³ã瀺ããããšãããã誰ãäœã«ãæå¥ã¯ãªããšæããŸããã
ããããOSãåŠçç³»ãä»®å®ã§ããªã(ã€ãŸãèŠæ Œã§èŠå®ãããŠããããšä»¥äžã¯
äœãä»®å®ã§ããªã)äžè¬çãªåçãšããŠã¯ïŒïŒïŒã§ããããæ²³åããã®åçã¯
VC++ Programming FAQã«ã¯èŒããŠè¯ããããããªããã©ãããC FAQã«èŒããŠ
ããŸã£ããããç§ã®åŠçç³»ã§ã¯ãæžããŠããéãã«ãã£ãŠãã©ã€ãã©ãªã眮ã
æããããªãããä»»æã®CR/LFã®çµåãããæ±ããããã«ãããä»ãå£ããã
ãªã©ãšèªãã äººãæ··ä¹±ããŠããŸãå¯èœæ§ããããŸãããã
ã§ãäžã§ç§ãèšã£ãŠãã®ã¯ããfgetsã«éã£ãŠèšãã°æ²³åããã®ç°å¢ã§ã¯ããŸ
ããŸããŸããããããããªããã©ãäžè¬ã«ãæšæºã©ã€ãã©ãªã¯çœ®ãæããŠè¯ãã
ãšèšã£ã¡ããã®ã¯ãŸããã§ããããšããããšã§ãã
> > ã»ã©ããªOSã®ããã¹ãã§ãããã¹ãã¢ãŒãã§æ±ããã©ã€ãã©ãª
> > ã¯ã ãªã§ãããã(ããããEBCDIC/EBCDIKããISO10646ãŸã§ãäœã®äºåæ
å ±ã
> > ãªãæ±ãã®ã¯ç¡çãšãããã®ã§ãããã)
>
> ãªãã§äœã®äºåæ
å ±ããªãæ±ãããšããçºæ³ãåºãŠããã®ãåãããŸãã
> (^_^;)ããµã€ãæ¹è¡æ
å ±ã"t"ã§äžããŠããŸããããããã«ç§ããããªããžã«ã«ãªæ
> æ¡ããèŠããªããã§ããã©(^_^;)ãããããã¯ãŒãã³ã°ãéçºå°çšã©ã€ãã©ãªã«çµã¿
> 蟌ãäºã¯æçšãããããŸããããè¡ã®äžã«CRãæ®ã£ãŠããã®ãææããŠãããã ãã§
> ãå©ãã人ããŸãããã(^â^)ã
ïŒ "t"ã£ãŠã"b"ãã€ããªã(ããã¹ãã¢ãŒã)ãã£ãŠããããšããªïŒ
ãããåãã§ããCRãšLFã ãæ±ãããšããã®ããäžè¬çãªåçã«ã¯ãããŸããµ
ãããããªãããããããªä»®å®ããããäŸã ãšèšãããã ãã§ãããã©ããªã
ãã¹ããããã¹ãã¢ãŒãã§æ±ããŸãããããšããã®ã¯äžè¬ã«ã¯ã ãã£ã§ããã
ãšã
> > CRãšLFã®çµã¿åããçšåºŠã®ãããç¹æ®ãªçšéã«éã£ããšããŠããããå€ãã¡ã
> > ããšå°ãããšããããŸããããäŸãã°ããCR+LFã§è¡ã®çµãã衚ãããšããçŽ
> > æã®ã·ã¹ãã ã§ããCRã ãããšããLFã ããã§è¡ã®çµããšèŠãªããŠããŸããšã
> > ããã§ãªãã€ããã®ä»ã®ããã°ã©ã ãšäºææ§ããªããªã£ãŠããŸããŸãã(CRã
> > ãã£ãŒã«ãåºåããšããŠäœ¿ãããã°ã©ã ãªããŠã®ãããããã)
>
> ã©ã€ãã©ãªã®ããã©ã«ãã®åäœãå€ããªããã°åé¡ç¡ãããã§ãããããã«ç§
> ã ã£ãŠã¿ããªã䜿çšããŠããã©ã€ãã©ãªããããªãå€ãããããŸããã(^â^)ã
ããããã ã£ããã§ãããæ²³åããã¯ããæšæºã®è¡å
¥åºå颿°ã¯ãä»»æã®CRãš
LFã®çµåãããæ±ãããã®ã«çœ®ãæããšãã®ãè¯ãããšãã£ããã£ãŠãã®ããš
æããŸããã
ãããç§ã®æå³ã¯åãã§ãããä»»æã®CRãšLFã®çµåãããæ±ããã©ã€ãã©ãªã«
眮ãæãã¡ããã°OKã§ãããã¯äžè¬çãªåçãšããŠã¯ãŸããããšããããšã§ãã
> > ã§ããæšæºã©ã€ãã©ãªã眮ãæãã¡ããã®ã¯(ããšãããŸããŸããŸãè¡ãåŠç
> > ç³»ãã䜿ããªããšããŠã)ãããŒãã¯ã£ãããã£ãŠãã ããããšæã£ã¡ããã
> > ã§ããã
>
> ããããããŸããããä»äºã§ããããéçºæžã¿ã®ããã¹ããšãã£ã¿ãŒããã£ãŠã
> ããã§NCã®EBCDICãä¿®æ£ããããšèšãããããã©ãããŸãïŒããæšæºã©ã€ãã©ãªã眮
> ãæãã¡ãããã®ã¯ãä»äºã§ãã
ãã¡ããç¹å®ã®ãä»äºã§ã®ç¹å®ã®è§£æ±ºæ³ãšããŠã¯äœãæå¥ãä»ããã€ããã¯ã
ããŸããã
ã§ããfj.comp.lang.cã§ã®äžè¬çãªåçãšããŠã¯...
ããªããã°ãèªãã 人ã¯ã(èŠæ Œããä»®å®ã§ããªã)Cèšèªäžè¬ã®è©±ããšåãã®
ãæ®éã§ããããã§ãäžè¬çã«ãã©ã€ãã©ãªã¯çœ®ãæãããããã ãªããšä¿¡ã
ãŠããŸã£ããgccã§strlenã眮ãæããããšããŠããã£ãããã¡ããããã
çå±±ããããæå®³ããšæ€ã£ãŠãã£ãããã®ã¯ãããããããšã屿§ããŠãããª
ãããšæããŸãã
åç°æŠåž
> ãæžããã»ã©ããšèšããŸãã...ãµã€ãCã§æžããŠãŸãããïœãããŒãããCã©ã€
> ãã©ãªãã¢ã»ã³ãã©ã§ããäºäŸããã£ããã£ãŠããã®ã§ããããããããçŸåšã®ã³ã³
> ãã€ã©æè¡ãRICSçã§ã¯ã¢ã»ã³ãã©ãšããå€ããäºã¯ç¡ãã...ã
Cãåºæ¥ãããåºã䜿ãããŠããèšèª(äŸãã°Fortran, Pascal, Algolãšã)ã§
ã¯ããæšæºã©ã€ãã©ãªããã®èšèªèªèº«ã§ã»ãšãã©ãã¹ãŠæžããããšããã®ã¯å°
æ°æŽŸã ã£ããã§ããOS ããé«çŽèšèªã§éçºãããšããã®ã¯ãŸã ãŸã åéºã ã£
ãã®ã§ãã
ïŒ Cã¿ãããªãã©ã€ãã©ãªããããªããŠãBASICã®ãçµã¿èŸŒã¿é¢æ°ãã¿ãããª
ïŒ ç¹å¥ãªãã®ã ã£ãããšãããã
æšæºã©ã€ãã©ãªã®ããªãã®éšåã(ããã©ãããOSã®å€§éšåã)Cèªèº«ã§æžããŠ
ãããšããã®ã¯ãC(ãšUnix)ã®å€§ããªèªæ
¢ã ã£ããã§ããããã¡ããã©ã€ãã©
ãªãOS ãæžãããã«ã¯èŠæ Œããå€ããããš(ãããåœæã¯èŠæ ŒãªããŠãªãã£ã
ã®ã§ãç§»æ€æ§ãããæãªãããšãããšèšã£ãæ¹ãæ£ç¢ºã)ãå€ã
ãããããåŸ
ãªãã®ã§ãããããããããšãã§ããããšããããŠç§»æ€æ§ã®ç ç²ãæå°éã«ãš
ã©ããããããšãããŸãCã®èªæ
¢ãšãããæå€§ã®å©ç¹ã ã£ãã®ã§ããã
ããããããããäŸé¡ã°ããã«ãŒããã³ãæã¡åºããŠããã®ã¯ãããããæä»£
èæ¯ããã§ããããã®æ¬ã¯Cã®å
¥éæžã§ããã ãã§ãªããCã®å©ç¹ã宣äŒããå
èæžã®åœ¹å²ãå
ŒããŠããã§ãããã第2çã«ãªã£ãŠãäŸé¡ã¯ããŸãå€ã£ãŠãŸã
ãããåž°çäžã§æå
ã«æ¬ããªãã®ã§ãããUnixã·ã¹ãã ã€ã³ã¿ãŒãã§ãŒã¹ãçš
ããŠããç« ã§ã¯ãå
容ãã·ã¹ãã äŸåã§ããããšãšãããã§ãããŸãããã°ç§»
æ€æ§ã®äœäžã¯æå°éã§ãããšããããšãæã£ãŠãã£ããšèšæ¶ããŠããŸãã
> > ïŒ åŠçã«å®éã«ãããããšããã°my_fopenãªã©ã®ååã䜿ãã§ããããåžžèç
> ã«ã
>
> ããããæšæºé¢æ°ã«ãéå±€æ§é ãããã®ã§ããã§ã¯æ£ç¢ºãªçè§£ã¯åŸãããŸããã
K&RçšåºŠã®å
¥é段é(ãšãã£ãŠããããã°ã©ãã³ã°ã®åå¿è
ã«ã¯ãã£ããé£ãã
æ¬ã§ãã...ãããããã£ã±ããæ¢ã«ããã°ã©ãã³ã°ãç¥ã£ãŠãã人ã®ããã®C
å
¥éãæå³ããŠæžããããããªãããªã)ã®äººã«ã¯ãéå±€ãŸã§å
šéšçè§£ããã
ããªããŠããŸãããåã«my_fopenãšããååã§ãµãã»ãããäœãããæ¹ãã©ã
èããŠãçè§£ãæ©ããšæããŸãã
å
¥éè
ã«ã¯ãŸãåºæ¬çãªAPIã®äœ¿ãæ¹ããèŠããŠãããããšã«ãªããŸãããã
ãã®å Žåãå°æ¥ã©ããªç°å¢ã䜿ãããšã«ãªã£ãŠãå°ããªãããã«ãªãã¹ãèŠæ Œ
ã«æ²¿ã£ãŠæããããšã«ãªãã§ããããèŠæ Œãšéãããšãæãããšãã¯ããã®ç°
å¢ã§ã¯ããšæã£ãŠæããŸãã
ã§ãå
¥éè
ã§ãªãå°éå®¶ãç®æã人ã«åŠçç³»ã®å
éšãæããå Žåã¯ãã©ããèŠ
æ Œã ãã§ã¯ããŸãªãã®ã§ã詊ããšãããåŠçç³»äŸåã®æ©èœãã©ãã©ã䜿ãã§ãã
ãããç§ãªãgccã®-nodefaultlibs ãªãã·ã§ã³ãšãã䜿ãããããªãã§ãåœç¶
ãããã¯èŠæ Œã¯ããã®ããã®åŠçç³»ã§ãã䜿ããªãããæ¹ã ããšããããšã¯ç
è§£ããŠããããªããšå°ãã
ãã ãããããå°éå®¶ã®åµã«ã¯ãäžéšã¯äœãããããç¥ããªããã©ãèªãŸãã
ã®ãåºæ¬ã«ãªãã§ããããã(å
šéšäœãæãããããã¯ãªãã)
ãŸãäžã®ãæè²æ³ãã«ã€ããŠã¯è²ããªæèŠãããã§ãããããç§ã®ã絶察è¯ã
ãªããŠèšãã€ããã¯ãããŸããã
---- ---- ---- ---- ---- ---- ---- ----
ãããã«ãããèšèªä»æ§ãèªããšãã«æ¬åœã«æš©åšãããã®ã¯èšèªä»æ§æžã ãã§
ãã£ãŠ(ã¢ã¿ãªããš)ããã以å€ã®æ¬ã¯(ããšããå
ç¥ããæžãããã®ã§ããã
ãš)å¯èªæ¬ã«ãããŸããã
仿§æžã«ããããªããšãã£ããäœããããŠãç¥ããªããããšæžããŠããããšã
äœã®éå®ããªãã«èŠããã®ã¯ã©ãããšæããŸãããã©ãããŠãå¿
èŠãããæã§
ãããã®ç°å¢ã§ã¯ããšã¯ã£ããæããªããšãå°æ¥æšãŸãã¡ããã§ãããã
ïŒ ãintã¯2ãã€ãã§ãããšããcharã¯ç¬Šå·ãªãã§ãããšãæèšããŠãæ¬ãšå眪
ïŒ ã«ãªã£ã¡ããã
åç°æŠåž
"MAEDA Atusi (åç°æŠåž)" wrote:
> ããããOSãåŠçç³»ãä»®å®ã§ããªã(ã€ãŸãèŠæ Œã§èŠå®ãããŠããããšä»¥äžã¯
> äœãä»®å®ã§ããªã)äžè¬çãªåçãšããŠã¯ïŒïŒïŒã§ããããæ²³åããã®åçã¯
> VC++ Programming FAQã«ã¯èŒããŠè¯ããããããªããã©ãããC FAQã«èŒããŠ
> ããŸã£ããããç§ã®åŠçç³»ã§ã¯ãæžããŠããéãã«ãã£ãŠãã©ã€ãã©ãªã眮ã
> æããããªãããä»»æã®CR/LFã®çµåãããæ±ããããã«ãããä»ãå£ããã
> ãªã©ãšèªãã äººãæ··ä¹±ããŠããŸãå¯èœæ§ããããŸãããã
ããããã®ããžçå±ãšããããããã¯ããã€ãã
ãã¡ããããèšèªåŠçç³»ã®æäŸããã©ã€ãã©ãªã®æ§æã«ãã£ãŠã¯,
眮ãæããããšã«ãã£ãŠä»ã®ã©ã€ãã©ãªé¢æ°ã®æåãå€ãã
å¯èœæ§ããããŸã.ãŸãã眮ãæãæ¹ã«å¶éããã(äŸ: longmp
ããŠãŒã¶ãæžããšãã¯ããããŠsetjmpããŠãŒã¶ãæžããã°ãªããªã)
ããšããããŸãã宿ã«è¡ãããšã¯ãå§ãã§ããŸããã
ã®ãããªæ³šææžãã¯ãã€ããªããšåå¿è
ã«äžèŠªåã§ããã.
Cã®èšèªã®èŠæ Œãšãæšæºã©ã€ãã©ãªã®èŠæ Œãæå³çãã©ããç¥ããªãã
æ··åããŠãŸããã.
C以åã®ã³ã³ãã€ã«ã»ãªã³ã¯ã䌎ãèšèªå
šè¬ã®åžžèãšããŠãOSãããã¯
èšèªåŠçç³»ãçšæããã©ã€ãã©ãªé¢æ°ã»æç¶ãããŠãŒã¶ã®äœã£ãååã®
颿°ã»æç¶ãã§ãoverrideãã§ããŸãã
ãã§ããªããã®ã¯ååšããªãããšæèšã¯ããŸããã,ã§ããã»ãã
åžžè.
> ã§ãäžã§ç§ãèšã£ãŠãã®ã¯ããfgetsã«éã£ãŠèšãã°æ²³åããã®ç°å¢ã§ã¯ããŸ
> ããŸããŸããããããããªããã©ãäžè¬ã«ãæšæºã©ã€ãã©ãªã¯çœ®ãæããŠè¯ãã
> ãšèšã£ã¡ããã®ã¯ãŸããã§ããããšããããšã§ãã
ãŸãããªãã§ãã
ãŸãããæšæºé¢æ°ããšããã®ã誀解ãèªãçšèªã§ããã
PascalãFORTRANãªã©ã®ããŠãŒã¶ãoverrideãã§ããªãæšæºé¢æ°ã»æç¶ã
ãšã®æ··åãçã£ãŠããã®ã§ãããã?
ããCã¯èªå·±è²¬ä»»ã®èšèª.èŠæ Œã«è²¬ä»»ããšã£ãŠæ¬²ãã人ã¯
䜿ããª.
éœè€æçŽãsai...@ics.es.osaka-u.ac.jp
> ããããã®ããžçå±ãšããããããã¯ããã€ãã
ããããã®ãflame baitãšããããããã¯ç¡æå³ãªææ çæ»æã
> Cã®èšèªã®èŠæ Œãšãæšæºã©ã€ãã©ãªã®èŠæ Œãæå³çãã©ããç¥ããªãã
> æ··åããŠãŸããã.
ã¯ããå¥ã®èŠæ Œãªãã§ãã?
> C以åã®ã³ã³ãã€ã«ã»ãªã³ã¯ã䌎ãèšèªå
šè¬ã®åžžèãšããŠãOSãããã¯
> èšèªåŠçç³»ãçšæããã©ã€ãã©ãªé¢æ°ã»æç¶ãããŠãŒã¶ã®äœã£ãååã®
> 颿°ã»æç¶ãã§ãoverrideãã§ããŸãã
> ãã§ããªããã®ã¯ååšããªãããšæèšã¯ããŸããã,ã§ããã»ãã
> åžžè.
ãããŒã寡èã«ããŠãããªåžžèã¯ç¥ããŸããã§ããã
ïŒ ãåžžèããšããæ®éããšã䞻芳çãªèšèã䜿ã£ãŠãã¡ãããšçµè«ãåºãã
ïŒ ããã¯ãªãã§ããã©ã
ãšããã§ãã§ãããã£ãŠã®ã¯ãããããŠãã®åŠçç³»ã§ã¯ãããŠãã®ååã«ã€ã
ãŠoverrideã§ãããã§ãããã©ããªåŠçç³»ã®ã©ããªååã§ãã§ãããã§ããïŒ
> > ã§ãäžã§ç§ãèšã£ãŠãã®ã¯ããfgetsã«éã£ãŠèšãã°æ²³åããã®ç°å¢ã§ã¯ããŸ
> > ããŸããŸããããããããªããã©ãäžè¬ã«ãæšæºã©ã€ãã©ãªã¯çœ®ãæããŠè¯ãã
> > ãšèšã£ã¡ããã®ã¯ãŸããã§ããããšããããšã§ãã
>
> ãŸãããªãã§ãã
> ãŸãããæšæºé¢æ°ããšããã®ã誀解ãèªãçšèªã§ããã
> PascalãFORTRANãªã©ã®ããŠãŒã¶ãoverrideãã§ããªãæšæºé¢æ°ã»æç¶ã
> ãšã®æ··åãçã£ãŠããã®ã§ãããã?
function in the standard libraryã®ã€ããã§ããããããŸãããæ¥æ¬èªã®èŠ
æ Œã ãšäœãšãããç¥ããŸããã
ã§ã<KATE.00De...@sims211.trad.pfu.co.jp> ã®ãšããããŸãããšæã
ãŸããã(ãããèŠæ Œããé£ãããã ãããŸãããªããã®ããª?)
> ããCã¯èªå·±è²¬ä»»ã®èšèª.èŠæ Œã«è²¬ä»»ããšã£ãŠæ¬²ãã人ã¯
> 䜿ããª.
å«ã 䜿ã(ç¬)ã
ãŸãç§ã䜿ããã©ããã¯ã©ãã§ãè¯ãã§ãã誰ããããªè©±ã¯ããŠãªããã
èŠæ Œã責任ãåãã£ãŠã®ãäœã®ããšããè¯ãåãããªããã
åç°æŠåž
ããŒãŒãã»ã»åžžèã ãšæããŸããã»ã»
ãããããªã³ã¯ïŒãªã³ã«ïŒèªäœïŒ£èšèªã®èŠæ Œã®ç¯çã§ã¯ãªããšæããŸã
ã©ã€ãã©ãªãããã§ãããïŒ
äœãããšæãã°ã¢ã»ã³ãã©ã§ã©ã€ãã©ãªäœãããã ããã
ïŒãïœã»ã»æã¯ãããã£ããããªã€ãããŒ
> ãšããã§ãã§ãããã£ãŠã®ã¯ãããããŠãã®åŠçç³»ã§ã¯ãããŠãã®ååã«ã€ã
> ãŠoverrideã§ãããã§ãããã©ããªåŠçç³»ã®ã©ããªååã§ãã§ãããã§ããïŒ
çè«çã«ã¯ããªã³ã¯ããããªããã¹ãŠã®ç°å¢ã§åºæ¥ãã¯ãã§ããã»ã»
ïŒæè¿ã¯æé©åãé²ãã§ç¡çãªã»ãããããã®ããªïŒ
> > > ã§ãäžã§ç§ãèšã£ãŠãã®ã¯ããfgetsã«éã£ãŠèšãã°æ²³åããã®ç°å¢ã§ã¯ããŸ
> > > ããŸããŸããããããããªããã©ãäžè¬ã«ãæšæºã©ã€ãã©ãªã¯çœ®ãæããŠè¯
ãã
> > > ãšèšã£ã¡ããã®ã¯ãŸããã§ããããšããããšã§ãã
> >
> > ãŸãããªãã§ãã
> > ãŸãããæšæºé¢æ°ããšããã®ã誀解ãèªãçšèªã§ããã
> > PascalãFORTRANãªã©ã®ããŠãŒã¶ãoverrideãã§ããªãæšæºé¢æ°ã»æç¶ã
> > ãšã®æ··åãçã£ãŠããã®ã§ãããã?
>
> function in the standard libraryã®ã€ããã§ããããããŸãããæ¥æ¬èªã®èŠ
> æ Œã ãšäœãšãããç¥ããŸããã
æšæºã©ã€ãã©ãªã®é¢æ°
ãããªãããªïŒ
æšæºé¢æ°ã»ã»ã§ã¯ãªããšããããïŒç¬ïŒ
ïŒè±èªã¯åŒ±ãã»ã»
æšæºã©ã€ãã©ãªã䜿ããªãã£ãããèªåã§åãååã®é¢æ°ãæžããªããã°ãªã³ã¯ãš
ã©ãŒã«ãªã£ãŠãããªããšå°ãæ°ãããŸãã»ã»
ïŒãŸãã®èšäºã«ïŒ§ïŒ£ïŒ£ã§æé©åãããšstrlenãå±éããããšããã£ããã©
ïŒåºæ¬çã«ã¯strlenãåŒãã§ãããªããšã¡ãã£ãšããŸãããªã»ã»
ïŒã€ã³ã©ã€ã³é¢æ°ãããªããã ãã»ã»
In article <m3r92psp...@maedapc.cc.tsukuba.ac.jp>,
ma...@cc.tsukuba.ac.jp (MAEDA Atusi (åç°æŠåž)) writes:
>æ²³åããã®åçã¯ãããç¹å®ã®OSã®äžã®ããç¹å®ã®åŠçç³»ã§ã®ããŠããŠãšããŠ
>ãªãæçšãªåçã ãšæããŸããäŸãã°fj.os.ms-windows.programmingã§
>ãVC++7.0ã§æšæºã©ã€ãã©ãªã眮ãæããã«ã¯?ããšãã質åã®åçãšããŠæ²³å
>ãããå
·äœçãªæ¹æ³ã瀺ããããšãããã誰ãäœã«ãæå¥ã¯ãªããšæããŸããã
åŠçç³»ãç¹å®ããè©±ïŒæã¯ããããªåŠçç³»ãããããšãã話ïŒã§ãããã
ã©ã€ãã©ãªãŒé¢æ°ã眮ãæããããšã«ã€ããŠç°ãå±ããããšã¯ãªãã£ã
ã§ããããæ²³åããã¯ãã©ã®ãããªåŠçç³»ã§ãã§ãããããã«æãããŠ
ãããããªã®ã§ãç°ãå±ããŠããããã§ãã
åç°ãããææãããŠããããã«ãã©ã€ãã©ãªãŒé¢æ°ãã€ã³ã©ã€ã³å±é
ããåŠçç³»ãååšããŸããå®éã«ã¯ããã®ãããªåŠçç³»ã§ã¯ã€ã³ã©ã€ã³
å±éãããªãæ¹æ³ïŒã³ã³ãã€ã«ãªãã·ã§ã³çïŒãçšæããŠããã§ããã
ããä¿èšŒãããããšã§ã¯ãããŸããã
ãŸããèŠæ Œã¯ã©ã€ãã©ãªãŒé¢æ°ããã¯ãã§å®çŸããããšãèªããŠããŸãã
ãã®ãããªåŠçç³»ã§ã¯ãã©ã€ãã©ãªãŒé¢æ°ãšååã®é¢æ°ãå®çŸ©ããããš
ãããšãææ³éåãšãªãããšãããåŸãŸãã
ã©ã€ãã©ãªãŒé¢æ°ãšååã®é¢æ°ãå®çŸ©ã§ããåŠçç³»ã§ããå¿
ããã眮ã
æãããããšã¯éããŸãããèŠæ Œã¯ãäºçŽãããªããã¹ãŠã®èå¥åãã
ãã°ã©ããŒãèªç±ã«äœ¿ããããšãä¿èšŒããŠããŸããäŸãã°ãUNIX ã§ã¯
read() ãšãã颿°ïŒã·ã¹ãã ã³ãŒã«ïŒããããŸããããã®ååã®å€éš
ãªã³ã±ãŒãžãæã€é¢æ°ããªããžã§ã¯ããããã°ã©ã ã§å®çŸ©ããŠãæ£ãã
åäœããããšãèŠè«ããŠããããã§ãã
ãããå®çŸããããã«ãSunOS 5 ã®ãªã³ã±ãŒãžã·ã¹ãã ã§ã¯ weak ã·ã³
ãã«ãå°å
¥ããããã°ã©ã äžã§ read() ãå®çŸ©ããŠããã©ã€ãã©ãªãŒé¢
æ°å
ã§ read() ãåŒåºããŠããéšåã«åœ±é¿ãäžããªãããã«ããŠããŸãã
SunOS 5 ã§ã¯ã©ã€ãã©ãªãŒé¢æ°èªèº«ã weak ã·ã³ãã«ãšãªã£ãŠãããã®
ããããŸãããã®ãããªé¢æ°ã¯éåžžã®æ¹æ³(*)ã§ã¯çœ®ãæããããŸããã
ïŒ weak ã·ã³ãã«ã§ã¯ãªã颿°ã眮ãæããããã®æ¹æ³
ããšããã©ã€ãã©ãªãŒé¢æ°ã眮ãæããããšãã§ããå Žåã§ãã£ãŠãã
In article <92betr$vr$1...@news.telewaynet.ad.jp>,
"c.g.green" <cg_...@osa.att.ne.jp> writes:
| ããããããã¹ãã¢ãŒããæ©çš®ã«äŸåããæ¹è¡ã³ãŒãã«å¯Ÿå¿ãããã®ã¯éåžžã«ç°¡
|åã§ã(^â^)ãåã«ã©ã€ãã©ãªã®è©²åœéšåã®ã³ãŒããã»ãã®å°ãä¿®æ£ããã°è¯ãã®ã§
|ããæ¹è¡ã³ãŒãã®åŠçã¯ã©ã€ãã©ãªã®ç¹å®é¢æ°ã«ã«ãã»ã«åãããŠããŸãããã®ã«ã
ãæ¹è¡ã³ãŒãã®åŠçã¯ã©ã€ãã©ãªã®ç¹å®é¢æ°ã«ã«ãã»ã«åããããŠãã
ãšã¯éããŸãããã©ã€ãã©ãªãŒã®ãœãŒã¹äžã§ã«ãã»ã«åãããŠããŠãã
ããããã¯ãçã§ã€ã³ã©ã€ã³å±éãããŠããããšãããã§ãããããã
ãªããšãstdio ã®å€ãã®é¢æ°ã眮ãæããå¿
èŠãåºãŠããŸãã
ãã®ãç¹å®é¢æ°ããã€ã³ã©ã€ã³å±éãªã©ãããŠããªãçã®é¢æ°ã ã£ããš
ããŠããã©ã€ãã©ãªãŒé¢æ°ã®ãœãŒã¹ãå
¬éãããŠããªããã°ããããèŠ
ã€ãåºããŠä¿®æ£ããã®ã¯å®¹æã§ã¯ãªãã§ãããã
UNIX ã®ããã« '\n' ã«å¯ŸããŠç¹å¥ã®åŠçãå¿
èŠããªãåŠçç³»ã«ãããŠã
'\n' ã CR+LF ãšããŠåºåããããã«ä¿®æ£ã®ã¯ãæŽã«å€§å€ã§ãããã
>> (^_^;)ããµã€ãæ¹è¡æ
å ±ã"t"ã§äžããŠããŸããããããã«ç§ããããªããžã«ã«ãªæ
>> æ¡ããèŠããªããã§ããã©(^_^;)ãããããã¯ãŒãã³ã°ãéçºå°çšã©ã€ãã©ãªã«çµã¿
>> 蟌ãäºã¯æçšãããããŸããããè¡ã®äžã«CRãæ®ã£ãŠããã®ãææããŠãããã ãã§
>> ãå©ãã人ããŸãããã(^â^)ã
>ïŒ "t"ã£ãŠã"b"ãã€ããªã(ããã¹ãã¢ãŒã)ãã£ãŠããããšããªïŒ
>ãããåãã§ããCRãšLFã ãæ±ãããšããã®ããäžè¬çãªåçã«ã¯ãããŸããµ
>ãããããªãããããããªä»®å®ããããäŸã ãšèšãããã ãã§ãããã©ããªã
>ãã¹ããããã¹ãã¢ãŒãã§æ±ããŸãããããšããã®ã¯äžè¬ã«ã¯ã ãã£ã§ããã
>ãšã
äžã«æžããããã«åŠçç³»ãéå®ããªããã°ããCRãšLFã ãæ±ããã ãã§
ãå
åã«ã ãã£ãšèšããŸãã
>ãããã¯ãäžã®äž»åŒµ(ããã¹ãã¢ãŒãã§æ±ããŸããã/ã©ã€ãã©ãªã眮ãæããŸ
>ããã)ã«äœããã®éå®ãä»ãã®ãªãã°ããããã¯ã£ãããããŠæ¬²ããã®ã§ãã
>ãVC++7.0ã§ãxxxãxxxããã®ããã¹ããèªãå Žåã®è©±ããšããå
·åãã«ã
>ãèŠæ Œãªããç¥ããªããã©ããã¡ã®çŸå Žã§ã¯ãããã£ãŠãããã®ç°å¢ãªããã
>ã§OKã ããããšããæèŠãããåã®ããæ¹ã¯å®éã«ã¯ããŸãè¡ãããšãå€ããã
>èŠæ Œã§ã¯ãã£ã¡ãã ããªããšã«ãªã£ãŠããé¢åã ãããããæ¹ãè¯ããããšã
>ãæèŠããããããæçšã§ãããæ··åããªãã§æ¬²ãããšããäºã§ããã©ã¡ãã®
>èšãæ¹ãªã®ããã¯ã£ãããããŠæ¬²ãããã§ãfj.comp.lang.c ã§äœã®éå®ãä»
>ããªããã°ãèªãã 人ã¯ã(èŠæ Œããä»®å®ã§ããªã)Cèšèªäžè¬ã®è©±ããšåãã®
>ãæ®éã§ããããã§ãäžè¬çã«ãã©ã€ãã©ãªã¯çœ®ãæãããããã ãªããšä¿¡ã
>ãŠããŸã£ããgccã§strlenã眮ãæããããšããŠããã£ãããã¡ããããã
>çå±±ããããæå®³ããšæ€ã£ãŠãã£ãããã®ã¯ãããããããšã屿§ããŠãããª
>ãããšæããŸãã
ãæ£æäŒã¿ã®éæçš¿ã§ããªãã£ãã®ã§ããã代åŒããŠæŽããŠæé£ããã
ããŸãã(_ _)
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
>> > C以åã®ã³ã³ãã€ã«ã»ãªã³ã¯ã䌎ãèšèªå
šè¬ã®åžžèãšããŠãOSãããã¯
>> > èšèªåŠçç³»ãçšæããã©ã€ãã©ãªé¢æ°ã»æç¶ãããŠãŒã¶ã®äœã£ãååã®
>> > 颿°ã»æç¶ãã§ãoverrideãã§ããŸãã
>> > ãã§ããªããã®ã¯ååšããªãããšæèšã¯ããŸããã,ã§ããã»ãã
>> > åžžè.
>>
>> ãããŒã寡èã«ããŠãããªåžžèã¯ç¥ããŸããã§ããã
>ããŒãŒãã»ã»åžžèã ãšæããŸããã»ã»
<KATE.01J...@sims211.trad.pfu.co.jp> ã«æžãã weak ã·ã³ã
ã«ã¯åžžèã¯ããã§ããããããã㯠ANSI CïŒåœæïŒã®èŠè«ããå°å
¥ã
ãããã®ãªã®ã§ãèŠæ Œãåžžèã¯ãããšããããšã«ãªããŸãã
ïŒèŠæ Œãåžžèã¯ããã§ãæ§ããªãã®ã§ããããã
>ãããããªã³ã¯ïŒãªã³ã«ïŒèªäœïŒ£èšèªã®èŠæ Œã®ç¯çã§ã¯ãªããšæããŸã
>ã©ã€ãã©ãªãããã§ãããïŒ
ïŒèŠæ Œã§èŠå®ãããŠããïŒã©ã€ãã©ãªãŒé¢æ°ãèŠæ Œã®ç¯çã§ãã
>ïŒãŸãã®èšäºã«ïŒ§ïŒ£ïŒ£ã§æé©åãããšstrlenãå±éããããšããã£ããã©
>ïŒåºæ¬çã«ã¯strlenãåŒãã§ãããªããšã¡ãã£ãšããŸãããªã»ã»
>ïŒã€ã³ã©ã€ã³é¢æ°ãããªããã ãã»ã»
ãããåžžèãªã®ã§ããããã
strlen() ããã¯ãã§çœ®ãæããããããã€ã³ã©ã€ã³å±éãããããã
ããšãèŠæ Œã¯çŠæ¢ããŠããŸãããããã©ãããããã®ãããªããšãèµ·ã
ãåŸãããšãèæ³šã«æžããŠããŸãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
Sugihara Yoshimiããã®èšäº<930mgi$n5k$1...@news.kyosai.or.jp>ãã
> > function in the standard libraryã®ã€ããã§ããããããŸãããæ¥æ¬èªã®èŠ
> > æ Œã ãšäœãšãããç¥ããŸããã
>
> æšæºã©ã€ãã©ãªã®é¢æ°
> ãããªãããªïŒ
> æšæºé¢æ°ã»ã»ã§ã¯ãªããšããããïŒç¬ïŒ
> ïŒè±èªã¯åŒ±ãã»ã»
ãèŠæ Œã§æ£åŒã«èªããããçšèªã§ã¯ãªãã«ãããCèšèªã®äžçã§ã¯
ãæšæºé¢æ°ããšããåŒã³æ¹ã¯ã¹ã¿ã³ããŒãã ãšæããŸãããã©ã
ä»ã«ããæšæºãããããšãã
ãæè¿ã§ã¯ããŸã䜿ããªã衚çŸãªã®ã§ãããããå°ãªããšããã€ãŠ
ã¯èœãèŠã衚çŸã§ããã
ããšããã§äœæ
çŽ çŽã«ãæšæºã©ã€ãã©ãªé¢æ°ããšèš³ããã«ãã®ãã
å
¥ããã®ã§ãããããæšæºé¢æ°ããäœçšå¥åŠã«æããŸãã
> ïŒãŸãã®èšäºã«ïŒ§ïŒ£ïŒ£ã§æé©åãããšstrlenãå±éããããšããã£ããã©
> ïŒåºæ¬çã«ã¯strlenãåŒãã§ãããªããšã¡ãã£ãšããŸãããªã»ã»
> ïŒã€ã³ã©ã€ã³é¢æ°ãããªããã ãã»ã»
ãstrlenãã€ã³ã©ã€ã³åããããšå°ããšããããšã¯ãèŠæ Œããå€ã
ãã³ãŒãã£ã³ã°ãããŠãããšããããšã§ããããã
ãisspaceãªã©ãã€ã³ã©ã€ã³åããããšå°ãã®ã§ããããã
ãïŒå¹Ÿã€ãã®å¶éããããã®ã®ïŒãã¯ãã§å®è£
ããŠè¯ãããšããã
ãšã¯ã€ã³ã©ã€ã³åããŠè¯ããšããããšãšç䟡ã ãšæããŸãããã©ã
strlençšåºŠã§ãã¡ãã¡é¢æ°åŒã³åºãã®ãªãŒããŒããããè¢«ãæ¹ãäœ
çšè¿·æã ãšæããŸãã
ãã©ã€ãã©ãªã®çœ®ãæãã«é¢ããŠã¯ã倧æµã®åŠçç³»ã§é©åœãªæ¹æ³ã
æºåããŠããããã§ããstrlenã®ã€ã³ã©ã€ã³åãé©åãªãããã
#includeããæã®ã¿ãèµ·ããæ§ã«ãªã£ãŠãããšæããŸãã
ãåŠçç³»ãã³ã³ãã€ã©ãã¢ã»ã³ãã©ããªã³ã«ãã©ã€ãã©ãªçã«åå²
ããŠããçç±ãèããã°åœç¶ãšããã°åœç¶ã§ããã
ãäœããåæã«ã©ã€ãã©ãªã眮ãæãããšã³ã³ãã€ã©ãšã©ã€ãã©ãª
ã®å¯æ¥ãªåèª¿ã¯æåŸ
ã§ããªãã§ãããããéšåçãªçœ®ãæããå¯èœ
ãšã¯éããªããïŒäžè¬çã«ã¯ãã®åŠçç³»ãçç¥ããŠããªãéãç¡ç
ã ãšæãããïŒãã©ã€ãã©ãªå
šäœã®çœ®ãæãã§ããåžžã«å¯èœãšã¯é
ããªãã§ããããShared LibraryãDLLã§ããã°éšåçãªçœ®ãæãã¯
ãœãŒã¹ããªãéãã»ãŒäžå¯èœã§ãããã
ãã¡ã³ããã³ã¹ãèãããšåäººãæšæºã©ã€ãã©ãªãæžãæããã¡ãªã
ããæãããŠã©ãã ãããã®ãçåã§ãããµãŒãããŒãã£è£œã®ã©ã€
ãã©ãªã䜿ããšããã®ãªãããŸã åãããªãããªãã§ããã
ãã³ã³ãã€ã©ãšã©ã€ãã©ãªãå調ããŠããè¯ãã³ãŒããåãåºããš
å°ãçç±ïŒstrlenã®ã€ã³ã©ã€ã³åã§å°ãçç±ïŒã¯ãã£ã±ãåãããŸ
ããã
--
æ€é è£æš¹ <yu...@cds.ne.jp>
> >ãããããªã³ã¯ïŒãªã³ã«ïŒèªäœïŒ£èšèªã®èŠæ Œã®ç¯çã§ã¯ãªããšæããŸã
> >ã©ã€ãã©ãªãããã§ãããïŒ
>
> ïŒèŠæ Œã§èŠå®ãããŠããïŒã©ã€ãã©ãªãŒé¢æ°ãèŠæ Œã®ç¯çã§ãã
ãã©ã€ãã©ãªé¢æ°ã®ä»æ§ãã¯èŠæ Œã®ç¯çãããããŸããããã©ã€ãã©ãªã¢ã³
ã®ä»æ§ã¯ç¡é¢ä¿ã ãšæããŸãããªã³ã«ãŒãåæ§ã§ãããã
ãã©ã€ãã©ãªãããã§ãããïŒãã¯ãã©ã€ãã©ãªã¢ã³ãããã§ãããïŒããš
ç§ã¯è§£éããã®ã§ãããã©ã¡ãã«ãããã€ã³ã¿ãŒããžã·ã§ãã³ã°ã¯èšèªã«ã¯
é¢ä¿ãªãèµ·ããåŸãŸãããèµ·ãããªããããªãªã³ã«ãŒããããããããŸãã
ãã©ããããããªã³ã«ãŒã¯äœ¿ããããªããªãã
æšæºãããã»æšæºã©ã€ãã©ãªã¯ãããšæããŸãã
ãã ããªãããæšæºé¢æ°ããšåŒãã§ãã颿°ã¯ã
æšæºã©ã€ãã©ãªããªã³ã¯ããªãã£ãã䜿ããªãã¯ãã§ããïŒæ®éã¯ã»ã»ïŒ
ïŒæšæºã©ã€ãã©ãªããªã³ã¯ããªãã³ã³ãã€ã«ç°å¢ã
ïŒããŸã©ããããã©ããã¯è¬ã§ããã»ã»
> ããšããã§äœæ
çŽ çŽã«ãæšæºã©ã€ãã©ãªé¢æ°ããšèš³ããã«ãã®ãã
> å
¥ããã®ã§ãããããæšæºé¢æ°ããäœçšå¥åŠã«æããŸãã
ã ãããã®ããå
¥ãã
æ£ç¢ºã«ã¯ãæšæºã©ã€ãã©ãªã«å
¥ã£ãŠãã颿°ãïŒçŽèš³ïŒïŒã ãšæããŸãã
> > ïŒãŸãã®èšäºã«ïŒ§ïŒ£ïŒ£ã§æé©åãããšstrlenãå±éããããšããã£ããã©
> > ïŒåºæ¬çã«ã¯strlenãåŒãã§ãããªããšã¡ãã£ãšããŸãããªã»ã»
> > ïŒã€ã³ã©ã€ã³é¢æ°ãããªããã ãã»ã»
>
> ãstrlenãã€ã³ã©ã€ã³åããããšå°ããšããããšã¯ãèŠæ Œããå€ã
> ãã³ãŒãã£ã³ã°ãããŠãããšããããšã§ããããã
> ãisspaceãªã©ãã€ã³ã©ã€ã³åããããšå°ãã®ã§ããããã
> ãïŒå¹Ÿã€ãã®å¶éããããã®ã®ïŒãã¯ãã§å®è£
ããŠè¯ãããšããã
> ãšã¯ã€ã³ã©ã€ã³åããŠè¯ããšããããšãšç䟡ã ãšæããŸãããã©ã
å¥ã«ã€ã³ã©ã€ã³åãããŠå°ããããªã³ãŒãã¯æžããŠãªããšæããŸããã
ããããçšã«ãæé©åããããšåããªããªãããšãã£ãããšãèµ·ããã®ãäºå®ã§ãã
ïŒæè¿Windowsã°ã£ãã ããç¡ããã©ïŒïŒŸïŒŸïŒïŒ
> strlençšåºŠã§ãã¡ãã¡é¢æ°åŒã³åºãã®ãªãŒããŒããããè¢«ãæ¹ãäœ
> çšè¿·æã ãšæããŸãã
åœæ¹ã®ç°å¢ïŒWindowsïŒã§ã¯æ°åã¯ããã¯ãæ°åãã€ãçšåºŠã®ãªãŒããŒãããã¯
é¢ä¿ãªãç¶æ
ã§ãã®ã§ãããã€ã³ã©ã€ã³åã®å¯äœçšããããªããªãŒããŒãããã
ãã£ãã»ããããã§ãã
> ãã©ã€ãã©ãªã®çœ®ãæãã«é¢ããŠã¯ã倧æµã®åŠçç³»ã§é©åœãªæ¹æ³ã
> æºåããŠããããã§ããstrlenã®ã€ã³ã©ã€ã³åãé©åãªãããã
> #includeããæã®ã¿ãèµ·ããæ§ã«ãªã£ãŠãããšæããŸãã
> ãåŠçç³»ãã³ã³ãã€ã©ãã¢ã»ã³ãã©ããªã³ã«ãã©ã€ãã©ãªçã«åå²
> ããŠããçç±ãèããã°åœç¶ãšããã°åœç¶ã§ããã
> ãäœããåæã«ã©ã€ãã©ãªã眮ãæãããšã³ã³ãã€ã©ãšã©ã€ãã©ãª
> ã®å¯æ¥ãªåèª¿ã¯æåŸ
ã§ããªãã§ãããããéšåçãªçœ®ãæããå¯èœ
> ãšã¯éããªããïŒäžè¬çã«ã¯ãã®åŠçç³»ãçç¥ããŠããªãéãç¡ç
> ã ãšæãããïŒãã©ã€ãã©ãªå
šäœã®çœ®ãæãã§ããåžžã«å¯èœãšã¯é
> ããªãã§ããããShared LibraryãDLLã§ããã°éšåçãªçœ®ãæãã¯
> ãœãŒã¹ããªãéãã»ãŒäžå¯èœã§ãããã
ã«é¢ããŠã¯ïŒïœïœïœïœïœïœïœïœã®ïŒ£ïŒ¯ïŒã§ãããããªãããã«ãªãŒããŒã©ã€ã
ã§ããããã«ãªã£ãŠããŠãããšæããŸãã
ïŒã¡ã
ãããã®ããã®ïŒ£ïŒ¯ïŒïŒ
ãŸããæšæºã©ã€ãã©ãªã§ã¯ç¡ãã§ãã眮ãæãã§ããã°ãªïœãšãæãããšãããããŸ
ãã
ïŒã·ããJISçšã®ããã°ã©ã ãUNICODEçšã«ç°¡åã«å€ãããããã ãã»ã»
> ãã¡ã³ããã³ã¹ãèãããšåäººãæšæºã©ã€ãã©ãªãæžãæããã¡ãªã
> ããæãããŠã©ãã ãããã®ãçåã§ãããµãŒãããŒãã£è£œã®ã©ã€
> ãã©ãªã䜿ããšããã®ãªãããŸã åãããªãããªãã§ããã
ããã ãçŽããŠäœ¿ããããšããèŠæ±ã¯ãã£ã±ããããšæããŸãã
ããã§ãªãã°ïŒïœïœïœïœïœïœïœïœãïŒãªããŠããããããã®ãåºããŠã¯ããªãã§
ãããã
ïŒãããããããŒãCOMïŒïœ
> ãã³ã³ãã€ã©ãšã©ã€ãã©ãªãå調ããŠããè¯ãã³ãŒããåãåºããš
> å°ãçç±ïŒstrlenã®ã€ã³ã©ã€ã³åã§å°ãçç±ïŒã¯ãã£ã±ãåãããŸ
> ããã
ãšããããã§ã¡ãã£ãšã ãçŽãããå Žåãæé©åããŠåããªããªãããããªã
ã€ã³ã©ã€ã³åããŠã»ãããªããšæããŸãã
>æšæºã©ã€ãã©ãªããªã³ã¯ããªãã£ãã䜿ããªãã¯ãã§ããïŒæ®éã¯ã»ã»ïŒ
åŠçç³»ãèŠå®ããŠãããèŠæ Œæºæ ã®ããã°ã©ã ã翻蚳ãå®è¡ããããã®
æé ãã«åŸããªãã£ããããã®æã®ç°å¢ãèŠæ Œæºæ ã«ãªããªããªããã
ã§ããããäœãèµ·ããã®ãã¯åŠçç³»ã«èããŠäžããã
>å¥ã«ã€ã³ã©ã€ã³åãããŠå°ããããªã³ãŒãã¯æžããŠãªããšæããŸããã
>ããããçšã«ãæé©åããããšåããªããªãããšãã£ãããšãèµ·ããã®ãäºå®ã§ãã
以åãC ã³ã³ãã€ã©ãŒéçºãæ
åœããŠããæã®çµéšã§ã¯ããæé©åãã
ããšåããªããªãããšããã¯ã¬ãŒã ã®æ®ãã©ã¯æªå®çŸ©åäœã§ãããæé©
åãè¡ãªããªãæã«æåŸ
ããåäœã«ãªã£ãŠããã ããšããããã§ãã
ïŒèªå倿°ã®é
åé åãè¶
ããŠãããšãã®ãæãå€ãã£ãããã§ã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ
>>å¥ã«ã€ã³ã©ã€ã³åãããŠå°ããããªã³ãŒãã¯æžããŠãªããšæããŸããã
>>ããããçšã«ãæé©åããããšåããªããªãããšãã£ãããšãèµ·ããã®ãäºå®ã§ãã
åã®èšäºã§æžãå¿ããŠããŸãããããæšæºã©ã€ãã©ãªãŒé¢æ°ãïŒãã¯ã
çã§ãªãïŒé¢æ°åŒåºãã«ããããæã¯ã
(1) 颿°åãæ¬åŒ§ã§å²ãïŒe.g. (putchar)('a')ïŒ
(2) é¢é£ããããããŒãã€ã³ã¯ã«ãŒãããåŸ #undef 颿°å ãã
ãšããæ¹æ³ãèŠæ Œæžã«ç€ºãããŠããŸãã
--
çå±±ïŒ ïŒ°ïŒŠïŒµ