This is unixsys.c in view mode; [Download] [Up]
/*
Copyright (C) 1994 M. Hagiya, W. Schelter, T. Yuasa
This file is part of GNU Common Lisp, herein referred to as GCL
GCL is free software; you can redistribute it and/or modify it under
the terms of the GNU LIBRARY GENERAL PUBLIC LICENSE as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
GCL is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
License for more details.
You should have received a copy of the GNU Library General Public License
along with GCL; see the file COPYING. If not, write to the Free Software
Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "include.h"
#ifdef ATT3B2
#include <signal.h>
int
system(command)
char *command;
{
char buf[4];
extern sigint();
signal(SIGINT, SIG_IGN);
write(4, command, strlen(command)+1);
read(5, buf, 1);
signal(SIGINT, sigint);
return(buf[0]<<8);
}
#endif
#ifdef E15
#include <signal.h>
int
system(command)
char *command;
{
char buf[4];
extern sigint();
signal(SIGINT, SIG_IGN);
write(4, command, strlen(command)+1);
read(5, buf, 1);
signal(SIGINT, sigint);
return(buf[0]<<8);
}
#endif
Lsystem()
{
char command[1024];
int i;
check_arg(1);
check_type_string(&vs_base[0]);
if (vs_base[0]->st.st_fillp >= 1024)
FEerror("Too long command line: ~S.", 1, vs_base[0]);
for (i = 0; i < vs_base[0]->st.st_fillp; i++)
command[i] = vs_base[0]->st.st_self[i];
command[i] = '\0';
{int old = signals_allowed;
int res;
signals_allowed = sig_at_read;
res = system(command) ;
signals_allowed = old;
vs_base[0] = make_fixnum(res >> 8);
vs_base[1] = make_fixnum(res & 0xff);
vs_top++;
}
}
DEFUN("GETPID",int,fSgetpid,SI,0,0,NONE,IO,OO,OO,OO,
"getpid returns the process ID of the current process")()
{ return getpid();
}
init_unixsys()
{
make_function("SYSTEM", Lsystem);
}
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.