📄 readme.txt
字号:
+--------+| Goal |+--------+ This library is intended a widely reusable C++ library. Reusableness means: 1. The efficiency of problem solving against resource consumption. 2. Widely accessible/useful to share efforts over space and time. (resource reuse) 3. Strict(precise) definition and necessity. (systemize problems in the way) Assumed that C++ supports the top-down way of design while C is in nature low level stuff, This library could be envisioned the one elementary bottom-up step bridging C library using into the context of C++. Note: The goal is a human-made ideal and a begining notion. This library is a developing project. +------------+| Features |+------------+ 1.Easy to learn Not many new symbols and concept to learn more than the benefit they could provide. The library is basically ready for use, if users are familiar with the basics of syscalls and C-library usage and the C++ language. Both of them can be learnt even more efficiently by using this library if not. 2.Fast for software development (and maintenance). Source location information(SLI) is supplied in the class for function to return reply. Practice has shown the fastness of locating bugs and of software developement. This library considers it general and effective enough as the base construction. You got an error, you know where it was from.+-------------+| Copyright |+-------------+ Package are created works except those parts for basic communication (elementary or text less than two lines), or files in directories licensed by GNU LGPL. See file COPYING for GNU LGPL. Note1: Applicable social law varies when and where package is distributed and used. Law of Nature dominates. Note2: Package is intended to be freely used if it is constructive to the benefit of public knowledge. Note3: Bugs and errors exist to discover and fix.+-------------------+| Acknowledgement |+-------------------+ The traditional C-library, syscalls actually satisfy more than the goals can ever expect except it is in C language. This library has no other way to, and can base itself on to take advantages. This software is developed on Redhat Linux and with GNU C/C++ suit. Acknowledgement goes to those persons enormously implied.+-------------+| Implement |+-------------+ Current version of library is developed on Fedora Core 3 Linux, using vi(m) and basic tools of GNU C/C++. I have only working experience on Redhat Linux and DOS, guessed this should not damage the framework, because this library converts syscall interface and concept quite directly, hope it did. Otherwise, let me know, please. For we know our part of the world we know, the best and no more. $make all and $./chk_all had run successfully on: 1. g++ version 3.4.2 (Linux Fedora Core3) 4.0.2 (SUSE Linux 10.0)+-----------+| Outline |+-----------+ Classes and Templates ------------------------------------------------------- Wy_RepInfo ... function reply information for WyReply WyReply ..... function reply (similar role to C errno) WyRet ..... for function to return (WyReply+SLI) Reply ........ namespace unbound class(macro) derived from WyRet. WyCSeg ....... character array indicator WyStr ........ dynamic char array WyMutex ...... mutex WyLock ....... for auto-release WyMutex. WyCond needs this class. WyCond ....... conditional variable WyOnce ....... once variable WyTimeSpec ... time WyDate ....... date Wy_Thread .... thread WySysFile .... base system file WyByteFlow ... base system file for standard input/output/error handlers WyChrFile .... system character file WySockFile ... system socket file WyFifoFile ... system FIFO file WyRegFile .... system regular file Wy_DirFile ... system directory file Wy_LnkFile ... system link file WyTerminal ... terminal device, derived from WyChrFile WyFileStat .... class for struct stat WyDirEnt ...... class for struct dirent WySockAddrLocal class for struct sockaddr_un WySockAddrINet4 class for struct sockaddr_in WySockAddrINet6 class for struct sockaddr_in6 WyTermios ..... class for struct termios Wy_FdSet ...... class for struct fd_set Wy_AtDestroy .. template for function call at object destruction Wy_Array ...... template for array WySeg ......... template for indicating range of array WyIConv ....... multibyte sequence conversion Functions ------------- Wy::sleep ..... sleep or pause execution Wy::sleep_till. sleep or pause execution(abstime) Wy::now ....... get the system time Wy::set_systime set the system time Wy::wrd ....... get the descriptive string of the argument(s) Wy::_sqrt ..... compute the square root Wy::_charnum .. convert character to number Wy::_strnum ... convert string to number Wy::_scanum ... scan string for number Wy::_mkstr .... make string from indicated arguments Wy::_catstr ... make string and concate Wy::_strftime . date string conversion Wy::local_tzname get local time zone name Wy::_strcmp ... compare string lexicographical order Wy::_strcpy ... copy string Wy::_strmove .. copy string if des/src overlap Wy::_strchr ... find char Wy::_strrchr .. find char in reverser order Wy::_strstr ... find string Wy::unlink ... unlink a pathname Wy::access ... test permission of a file Wy::chdir .... change current working directory Wy::getcwd ... get the current working directory Wy::chown .... change owner of a file Wy::chmod .... change permissions of a file Wy::select ... mutiplexing function Wy::stat ..... get file information from pathname Wy::lstat .... get link file information from pathname Wy::full_read read data to the maximal count Wy::full_write write data to the maximal count operator>> ... operator overload for reading WyByteFlow operator<< ... operator overload for writting WyByteFlow Objects ------------- Ok ........... reply mapped from errno 0 Wym_EPERM .... reply mapped from errno EPERM ......... ... reply's mapped from errno (up to 127) Wym_ETHRDCAN . reply "Thread canceled" Wym_EDIVZERO . reply "Divisor is zero" Wym_EMATHNEG . reply "Math negatation failed" Wym_EBADTYPE . reply "Bad argument type" Wy::cerr ..... WyByteFlow object reference for C error device Wy::cin ...... WyByteFlow object reference for C input device Wy::cout ..... WyByteFlow object reference for C output device Class Inheritage ------------------ WyReply ==> WyRet ==> WyMutex::Reply WyTimeSpec::Reply .... (namespace)::Reply +-> WyRegFile | WySysFile -+-> WyByteFlow --+-> WyChrFile ---> WyTerminal . | . +-> WySockFile . | . +-> WyFifoFile . .--- ?? N.A.?? --+-> Wy_DirFile . .--- ?? N.A.?? --+-> Wy_LnkFile . .--- ?? N.A.?? --+-> WyBlkFile(not implemented) Wy_SockAddr +-> WySockAddrLocal | +-> WySockAddrINet4 | +-> WySockAddrINet6+------------------------------------++ Library developing rules and guide |+------------------------------------+ -- Provide interface for the underlying C-library, syscall functions. Not all C-library, syscall functions are included. For example: a.stream I/O (C++ has this) b.locale functions. (C++ has this) c.unfamiliar/unsuitable functions This library should minimize the conflict from co-working with other C-library functions. There should be ways that allow unimplemented ,implicitly removed functionalities made easy. -- There may be classes that do not directly map to any C-library struct /notion, and seemingly required. However, existence of such classes should be qualified (e.g. WyStr,Wy_Thread,..) C-library related.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -