Читаем UNIX — универсальная среда программирования полностью

#include errno.h


extern int errno;

double errcheck;


double Log(x)

 double x;

{

 return errcheck(log(x), "log");

}


double Log10(x)

 double x;

{

 return errcheck(log10(x), "log10");

}


double Sqrt(x)

 double x;

{

 return errcheck(sqrt(x), "sqrt");

}


double Exp(x)

 double x;

{

 return errcheck(exp(x), "exp");

}


double Pow(x, y)

 double x, y;

{

 return errcheck(pow(x,y), "exponentiation");

}


double integer(x)

 double x;

{

 return (double)(long)x;

}


double errcheck(d, s) /* check result of library call */

 double d;

 char *s;

{

 if (errno == EDOM) {

  errno = 0;

  execerror(s, "argument out of domain");

 } else if (errno == ERANGE) {

  errno = 0;

  execerror(s, "result out of range");

 }

 return d;

}

3.7.19 mbox

From: Polyhedron Software Ltd 100013.461@CompuServe.COM

To: "INTERNET:bwk@research.att.com" bwk@research.att.com

Subject: Message from Internet

Date: 10 May 91 04:07:07 EDT

Message-Id: "910510080707 100013.461 CHE27-1"@CompuServe.COM


Got your message. I'll pass it on to Tony. We haven't noticed any

errors at all in CompuServe mail, so far.


Regards


Graham Wood


From kam Thu May 9 10:58:06 EDT 1991

tony fritzpatrick called from england. he had spoken to you

last week about compuserve.

the number is:

100013,461


this is regarding the HOC6 listing.


he will call you back tomorrow


From pipe!subll276 Fri May 3 10:38:29 EDT 1991

Message to: BK


From: Tony Fitzpatrick

ECL

Highlands Farm

Greys Road

Henley OXON, RG 94 PS

ENGLAND


Telephone: 0491 - 575-989 (country code 45)


FAX: 0491 576 557


1. H would like permission

   (which has already been granted by publisher) to

   use HUC 6 program — commercial software.


2. Is the listing available on floppy disk?


3. Thank you for a very interesting and useful book.


4. He left his fax # and telephone #. He wasn't sure of the country code.

   He would appreciate hearing from you via fax.


sub 11276

3.7.20 symbol.c

#include "hoc.h"

#include "y.tab.h"


static Symbol *symlist =0; /* symbol table: linked list */


Symbol *lookup(s) /* find s in symbol table */

 char *s;

{

 Symbol *sp;


 for (sp = symlist; sp != (Symbol*)0; sp = sp-next)

  if (strcmp(sp-name, s) == 0)

   return sp;

 return 0; /* 0 == not found */

}


Symbol *install(s, t, d) /* install s in symbol table */

 char *s;

 int t;

 double d;

{

 Symbol *sp;

 char *emalloc;


 sp = (Symbol*)emalloc(sizeof(Symbol));

 sp-name = emalloc(strlen(s)+1); /* +1 for '\0' */

 strcpy(sp-name, s);

 sp-type = t;

 sp-u.val = d;

 sp-next = symlist; /* put at front of list */

 symlist = sp;

 return sp;

}


char *emalloc(n) /* check return from malloc */

 unsigned n;

{

 char *p, *malloc;


 p = malloc(n);

 if (p == 0)

  execerror("out of memory", (char*)0);

 return p;

}

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже