⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rsystem.c

📁 这是一个Linux下的集成开发环境
💻 C
字号:
/*Copyright (c) 2000, Red Hat, Inc.This file is part of Source-Navigator.Source-Navigator is free software; you can redistribute it and/ormodify it under the terms of the GNU General Public License as publishedby the Free Software Foundation; either version 2, or (at your option)any later version.Source-Navigator is distributed in the hope that it will be useful,but WITHOUT ANY WARRANTY; without even the implied warranty ofMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNUGeneral Public License for more details.You should have received a copy of the GNU General Public License alongwith Source-Navigator; see the file COPYING.  If not, write tothe Free Software Foundation, 59 Temple Place - Suite 330, Boston,MA 02111-1307, USA.*//* $Id: rSystem.c,v 1.2 2002/11/13 22:27:07 mdejong Exp $ *//* $Log: *//* Ich, Doktor Josef Grosch, Informatiker, Jan. 1992 *//* interface for machine dependencies *//* See the header file rSystem.h for comments concerning the external routines!*//* compilation with the option -DUNIX uses UNIX system calls for IO (efficient),   otherwise the C library routines are used for IO (portable).		*/#include "rSystem.h"#include "Reuse.h"#include <stdlib.h>#include <tcl.h>#ifndef rfalse#define rfalse 0#endif#ifndef rtrue#define rtrue 1#endif#ifdef UNIX#if HAVE_UNISTD_H#include <unistd.h>#endif#else#ifdef __cplusplusextern "C" {#include <stdio.h>}#else#include <stdio.h>#endif#define NOFILES 64static rbool IsInitialized = rfalse;static char IsLineBuffered [NOFILES] = { 1, 1, 1, };static FILE *	FileStore [NOFILES] = {   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,   NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,};static void InitFileStore ARGS ((void)){#ifndef _USRDLL   FileStore [0] = stdin;   FileStore [1] = stdout;   FileStore [2] = stderr;#endif   IsInitialized = rtrue;}static tFile FileToInt#if defined __STDC__ | defined __cplusplus   (FILE * File)#else   (File) FILE * File;#endif{   register int	f = fileno (File);   FileStore [f] = File;   return f;}static FILE * IntToFile#if defined __STDC__ | defined __cplusplus   (tFile File)#else   (File) tFile File;#endif{   if (! IsInitialized) InitFileStore ();   return FileStore [File];}#endif/* binary IO */#ifdef OS2#ifdef __cplusplusextern "C" {#include <fcntl.h>#include <sys\types.h>#include <sys\stat.h>}#else#include <fcntl.h>#include <sys\types.h>#include <sys\stat.h>#endif#else#ifdef MVS#include <sys/times.h>#else#ifdef __cplusplusextern "C" {#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#ifdef HAVE_SYS_TIMES_H#include <sys/times.h>#endif}#else#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#ifdef HAVE_SYS_TIMES_H#include <sys/times.h>#endif#endif#endif#endifrbool IsCharacterSpecial#if defined __STDC__ | defined __cplusplus   (tFile File)#else   (File) tFile File;#endif{#ifdef MVS   return rfalse;#else   struct stat	buf;   (void) fstat (File, & buf);   return (0020000 & buf.st_mode) == 0020000;#endif}tFile OpenInput#if defined __STDC__ | defined __cplusplus   (char * FileName)#else   (FileName) char * FileName;#endif{#ifdef UNIX   return open (FileName, O_RDONLY);#else   FILE * FilePtr;   tFile File;#ifdef MSDOS   int i, l = strlen (FileName);   for (i = 0; i < l; i ++) if (FileName [i] == '/') FileName [i] = '\\';   FilePtr = fopen (FileName, "rb");#else#ifdef MVS   FilePtr = fopen (FileName, "r+,lrecl=80,blksize=240,recfm=f,type=record");#else   FilePtr = fopen (FileName, "r");#endif#endif   if (FilePtr == NULL) return -1;   if (! IsInitialized) InitFileStore ();   File = FileToInt (FilePtr);   IsLineBuffered [File] = IsCharacterSpecial (File);   return File;#endif}tFile OpenOutput#if defined __STDC__ | defined __cplusplus   (char * FileName)#else   (FileName) char * FileName;#endif{#ifdef UNIX   return creat (FileName, 0666);#else#ifdef MSDOS   FILE * FilePtr = fopen (FileName, "wb");#else   FILE * FilePtr = fopen (FileName, "w");#endif   if (! IsInitialized) InitFileStore ();   return FilePtr == NULL ? -1 : FileToInt (FilePtr);#endif}int rRead#if defined __STDC__ | defined __cplusplus   (tFile File, char * Buffer, int Size)#else   (File, Buffer, Size) tFile File; char * Buffer; int Size;#endif{#ifdef UNIX   return read (File, Buffer, Size);#else   if (IsLineBuffered [File]) {      Buffer [0] = '\0';      (void) fgets (Buffer, Size, IntToFile (File));      return strlen (Buffer);   } else      return fread (Buffer, 1, Size, IntToFile (File));#endif}int rWrite#if defined __STDC__ | defined __cplusplus   (tFile File, char * Buffer, int Size)#else   (File, Buffer, Size) tFile File; char * Buffer; int Size;#endif{#ifdef UNIX   return write (File, Buffer, Size);#else   return fwrite (Buffer, 1, Size, IntToFile (File));#endif}void rClose#if defined __STDC__ | defined __cplusplus   (tFile File)#else   (File) tFile File;#endif{#ifdef UNIX   (void) close (File);#else   (void) fclose (IntToFile (File));#endif}/* calls other than IO */#ifdef _MSC_VER#include <time.h>#endifchar * rAlloc#if defined __STDC__ | defined __cplusplus   (long ByteCount)#else   (ByteCount) long ByteCount;#endif{   return (char *) ckalloc ((unsigned long) ByteCount);}void rFree#if defined __STDC__ | defined __cplusplus   (char * ptr)#else   (ptr) char * ptr;#endif{   ckfree (ptr);}long rTime ARGS ((void)){   return 0;}static int	argc;static char * *	argv;int GetArgCount ARGS ((void)){ return argc; }void GetArgument#if defined __STDC__ | defined __cplusplus   (int ArgNum, char * Argument)#else   (ArgNum, Argument) int ArgNum; char * Argument;#endif{   register int	i = 0;   for (;; i ++)      if ((Argument [i] = argv [ArgNum][i]) == '\0') return;}char * GetEnvVar#if defined __STDC__ | defined __cplusplus   (char * Name)#else   (Name) char * Name;#endif{ return getenv (Name); }void PutArgs#if defined __STDC__ | defined __cplusplus   (int Argc, char * * Argv)#else   (Argc, Argv) int Argc; char * * Argv;#endif{   argc = Argc;   argv = Argv;}#include <errno.h>int rErrNo ARGS ((void)){ return errno; }int rSystem#if defined __STDC__ | defined __cplusplus   (char * String)#else   (String) char * String;#endif{#ifdef _MSC_VER   return -1;#else   return system (String);#endif}void rExit#if defined __STDC__ | defined __cplusplus   (int Status)#else   (Status) int Status;#endif#ifndef _USRDLL{ (void) exit (Status); }#else{}#endifvoid BEGIN_rSystem ARGS ((void)){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -