Basic Library Functions

Total Page:16

File Type:pdf, Size:1020Kb

Basic Library Functions man pages section 3: Basic Library Functions Sun Microsystems, Inc. 4150 Network Circle Santa Clara, CA 95054 U.S.A. Part No: 816–5214–10 December 2002 Copyright 2002 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. All rights reserved. This product or document is protected by copyright and distributed under licenses restricting its use, copying, distribution, and decompilation. No part of this product or document may be reproduced in any form by any means without prior written authorization of Sun and its licensors, if any. Third-party software, including font technology, is copyrighted and licensed from Sun suppliers. Parts of the product may be derived from Berkeley BSD systems, licensed from the University of California. UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd. Sun, Sun Microsystems, the Sun logo, docs.sun.com, AnswerBook, AnswerBook2, and Solaris are trademarks, registered trademarks, or service marks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries. Products bearing SPARC trademarks are based upon an architecture developed by Sun Microsystems, Inc. The OPEN LOOK and Sun™ Graphical User Interface was developed by Sun Microsystems, Inc. for its users and licensees. Sun acknowledges the pioneering efforts of Xerox in researching and developing the concept of visual or graphical user interfaces for the computer industry. Sun holds a non-exclusive license from Xerox to the Xerox Graphical User Interface, which license also covers Sun’s licensees who implement OPEN LOOK GUIs and otherwise comply with Sun’s written license agreements. Federal Acquisitions: Commercial Software–Government Users Subject to Standard License Terms and Conditions. DOCUMENTATION IS PROVIDED “AS IS” AND ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH DISCLAIMERS ARE HELD TO BE LEGALLY INVALID. Copyright 2002 Sun Microsystems, Inc. 4150 Network Circle, Santa Clara, CA 95054 U.S.A. Tous droits réservés Ce produit ou document est protégé par un copyright et distribué avec des licences qui en restreignent l’utilisation, la copie, la distribution, et la décompilation. Aucune partie de ce produit ou document ne peut être reproduite sous aucune forme, par quelque moyen que ce soit, sans l’autorisation préalable et écrite de Sun et de ses bailleurs de licence, s’il y en a. Le logiciel détenu par des tiers, et qui comprend la technologie relative aux polices de caractères, est protégé par un copyright et licencié par des fournisseurs de Sun. Des parties de ce produit pourront être dérivées du système Berkeley BSD licenciés par l’Université de Californie. UNIX est une marque déposée aux Etats-Unis et dans d’autres pays et licenciée exclusivement par X/Open Company, Ltd. Sun, Sun Microsystems, le logo Sun, docs.sun.com, AnswerBook, AnswerBook2, et Solaris sont des marques de fabrique ou des marques déposées, ou marques de service, de Sun Microsystems, Inc. aux Etats-Unis et dans d’autres pays. Toutes les marques SPARC sont utilisées sous licence et sont des marques de fabrique ou des marques déposées de SPARC International, Inc. aux Etats-Unis et dans d’autres pays. Les produits portant les marques SPARC sont basés sur une architecture développée par Sun Microsystems, Inc. L’interface d’utilisation graphique OPEN LOOK et Sun™ a été développée par Sun Microsystems, Inc. pour ses utilisateurs et licenciés. Sun reconnaît les efforts de pionniers de Xerox pour la recherche et le développement du concept des interfaces d’utilisation visuelle ou graphique pour l’industrie de l’informatique. Sun détient une licence non exclusive de Xerox sur l’interface d’utilisation graphique Xerox, cette licence couvrant également les licenciés de Sun qui mettent en place l’interface d’utilisation graphique OPEN LOOK et qui en outre se conforment aux licences écrites de Sun. CETTE PUBLICATION EST FOURNIE “EN L’ETAT” ET AUCUNE GARANTIE, EXPRESSE OU IMPLICITE, N’EST ACCORDEE, Y COMPRIS DES GARANTIES CONCERNANT LA VALEUR MARCHANDE, L’APTITUDE DE LA PUBLICATION A REPONDRE A UNE UTILISATION PARTICULIERE, OU LE FAIT QU’ELLE NE SOIT PAS CONTREFAISANTE DE PRODUIT DE TIERS. CE DENI DE GARANTIE NE S’APPLIQUERAIT PAS, DANS LA MESURE OU IL SERAIT TENU JURIDIQUEMENT NUL ET NON AVENU. 021018@4660 Contents Preface 13 Basic Library Functions 19 a64l(3C) 20 abort(3C) 21 abs(3C) 22 addsev(3C) 23 addseverity(3C) 24 assert(3C) 26 atexit(3C) 27 attropen(3C) 28 basename(3C) 29 bsdmalloc(3MALLOC) 30 bsd_signal(3C) 32 bsearch(3C) 33 bstring(3C) 35 btowc(3C) 36 catgets(3C) 37 catopen(3C) 38 cfgetispeed(3C) 41 cfsetispeed(3C) 42 clock(3C) 43 closedir(3C) 44 closefrom(3C) 45 confstr(3C) 47 crypt(3C) 51 3 crypt_genhash_impl(3C) 52 crypt_gensalt(3C) 53 crypt_gensalt_impl(3C) 54 cset(3C) 55 ctermid(3C) 56 ctime(3C) 57 ctype(3C) 62 cuserid(3C) 65 dbm(3UCB) 66 decimal_to_floating(3C) 68 difftime(3C) 70 directio(3C) 71 dirname(3C) 73 div(3C) 75 dladdr(3DL) 76 dlclose(3DL) 78 dldump(3DL) 79 dlerror(3DL) 85 dlinfo(3DL) 86 dlopen(3DL) 90 dlsym(3DL) 94 drand48(3C) 96 dup2(3C) 98 econvert(3C) 99 ecvt(3C) 101 encrypt(3C) 103 end(3C) 104 euclen(3C) 105 exit(3C) 106 fattach(3C) 107 __fbufsize(3C) 109 fclose(3C) 111 fdetach(3C) 113 fdopen(3C) 115 ferror(3C) 117 fflush(3C) 118 ffs(3C) 120 fgetc(3C) 121 4 man pages section 3: Basic Library Functions • December 2002 fgetpos(3C) 124 fgetwc(3C) 125 floating_to_decimal(3C) 127 flock(3UCB) 129 flockfile(3C) 131 fmtmsg(3C) 133 fnmatch(3C) 138 fopen(3C) 140 fopen(3UCB) 143 fpgetround(3C) 145 fputc(3C) 147 fputwc(3C) 150 fputws(3C) 152 fread(3C) 153 freopen(3C) 155 frexp(3C) 157 fseek(3C) 158 fsetpos(3C) 161 fsync(3C) 162 ftell(3C) 164 ftime(3C) 165 ftok(3C) 166 ftw(3C) 168 fwide(3C) 172 fwprintf(3C) 173 fwrite(3C) 180 fwscanf(3C) 181 getcpuid(3C) 188 getcwd(3C) 189 getdate(3C) 191 getdtablesize(3C) 197 getenv(3C) 198 getexecname(3C) 199 getgrnam(3C) 200 gethostid(3C) 204 gethostname(3C) 205 gethrtime(3C) 206 getloadavg(3C) 207 Contents 5 getlogin(3C) 208 getmntent(3C) 210 getnetgrent(3C) 212 getopt(3C) 215 getpagesize(3C) 218 getpagesizes(3C) 219 getpass(3C) 220 getpriority(3C) 221 getpw(3C) 223 getpwnam(3C) 224 getrusage(3C) 228 gets(3C) 231 getspnam(3C) 232 getsubopt(3C) 236 gettext(3C) 239 gettimeofday(3C) 243 gettimeofday(3UCB) 245 gettxt(3C) 246 getusershell(3C) 248 getutent(3C) 249 getutxent(3C) 252 getvfsent(3C) 256 getwc(3C) 258 getwchar(3C) 259 getwd(3C) 260 getwidth(3C) 261 getws(3C) 262 glob(3C) 263 grantpt(3C) 267 hsearch(3C) 268 iconv(3C) 271 iconv_close(3C) 276 iconv_open(3C) 277 index(3C) 279 initgroups(3C) 280 insque(3C) 281 isaexec(3C) 282 isastream(3C) 283 6 man pages section 3: Basic Library Functions • December 2002 isatty(3C) 284 isnan(3C) 285 iswalpha(3C) 287 iswctype(3C) 289 killpg(3C) 291 lckpwdf(3C) 292 ldexp(3C) 293 lfmt(3C) 294 localeconv(3C) 298 lockf(3C) 302 _longjmp(3C) 305 lsearch(3C) 306 madvise(3C) 308 makecontext(3C) 311 makedev(3C) 312 malloc(3C) 313 malloc(3MALLOC) 316 mapmalloc(3MALLOC) 319 mblen(3C) 321 mbrlen(3C) 322 mbrtowc(3C) 324 mbsinit(3C) 326 mbsrtowcs(3C) 327 mbstowcs(3C) 329 mbtowc(3C) 330 mctl(3UCB) 331 memory(3C) 333 mkfifo(3C) 335 mkstemp(3C) 337 mktemp(3C) 338 mktime(3C) 339 mlock(3C) 342 mlockall(3C) 344 modf(3C) 346 monitor(3C) 347 msync(3C) 349 mtmalloc(3MALLOC) 351 ndbm(3C) 354 Contents 7 nice(3UCB) 358 nlist(3UCB) 359 nl_langinfo(3C) 360 offsetof(3C) 361 opendir(3C) 362 perror(3C) 364 pfmt(3C) 365 plock(3C) 368 popen(3C) 369 printf(3C) 371 printf(3UCB) 380 pset_getloadavg(3C) 384 psignal(3C) 385 psignal(3UCB) 386 pthread_atfork(3C) 387 ptsname(3C) 389 putenv(3C) 390 putpwent(3C) 391 puts(3C) 392 putspent(3C) 393 putws(3C) 394 qsort(3C) 395 raise(3C) 397 rand(3C) 398 rand(3UCB) 399 random(3C) 400 rctlblk_set_value(3C) 403 rctl_walk(3C) 407 readdir(3C) 409 readdir(3UCB) 413 realpath(3C) 415 reboot(3C) 417 re_comp(3C) 418 regcmp(3C) 419 regcomp(3C) 421 remove(3C) 427 rewind(3C) 428 rewinddir(3C) 429 8 man pages section 3: Basic Library Functions • December 2002 scandir(3UCB) 430 scanf(3C) 431 seekdir(3C) 438 select(3C) 439 setbuf(3C) 443 setbuffer(3C) 445 setcat(3C) 446 setjmp(3C) 447 setjmp(3UCB) 450 setkey(3C) 453 setlabel(3C) 454 setlocale(3C) 455 sigblock(3UCB) 458 sigfpe(3C) 459 siginterrupt(3UCB) 461 signal(3C) 462 signal(3UCB) 464 sigsetops(3C) 466 sigstack(3C) 468 sigstack(3UCB) 470 sigvec(3UCB) 471 sleep(3C) 476 sleep(3UCB) 477 ssignal(3C) 478 stdio(3C) 479 str2sig(3C) 483 strcoll(3C) 484 strerror(3C) 485 strfmon(3C) 486 strftime(3C) 490 string(3C) 495 string_to_decimal(3C) 499 strptime(3C) 502 strsignal(3C) 507 strtod(3C) 508 strtol(3C) 511 strtoul(3C) 514 strtows(3C) 516 Contents 9 strxfrm(3C) 517 swab(3C) 519 sync_instruction_memory(3C) 520 syscall(3UCB) 521 sysconf(3C) 522 syslog(3C) 529 system(3C) 533 tcdrain(3C) 534 tcflow(3C) 535 tcflush(3C) 536 tcgetattr(3C) 537 tcgetpgrp(3C) 538 tcgetsid(3C) 539 tcsendbreak(3C) 540 tcsetattr(3C) 541 tcsetpgrp(3C) 543 tell(3C) 544 telldir(3C) 545 termios(3C) 546 times(3UCB) 547 tmpfile(3C) 548 tmpnam(3C) 549 toascii(3C) 551 _tolower(3C) 552 tolower(3C) 553 _toupper(3C) 554 toupper(3C) 555 towctrans(3C) 556 towlower(3C) 557 towupper(3C) 558 truncate(3C) 559 tsearch(3C) 562 ttyname(3C) 565 ttyslot(3C) 567 ualarm(3C) 568 ungetc(3C) 569 ungetwc(3C) 570 unlockpt(3C) 571
Recommended publications
  • CSE421 Midterm Solutions —SOLUTION SET— 09 Mar 2012
    CSE421 Midterm Solutions —SOLUTION SET— 09 Mar 2012 This midterm exam consists of three types of questions: 1. 10 multiple choice questions worth 1 point each. These are drawn directly from lecture slides and intended to be easy. 2. 6 short answer questions worth 5 points each. You can answer as many as you want, but we will give you credit for your best four answers for a total of up to 20 points. You should be able to answer the short answer questions in four or five sentences. 3. 2 long answer questions worth 20 points each. Please answer only one long answer question. If you answer both, we will only grade one. Your answer to the long answer should span a page or two. Please answer each question as clearly and succinctly as possible. Feel free to draw pic- tures or diagrams if they help you to do so. No aids of any kind are permitted. The point value assigned to each question is intended to suggest how to allocate your time. So you should work on a 5 point question for roughly 5 minutes. CSE421 Midterm Solutions 09 Mar 2012 Multiple Choice 1. (10 points) Answer all ten of the following questions. Each is worth one point. (a) In the story that GWA (Geoff) began class with on Monday, March 4th, why was the Harvard student concerned about his grade? p He never attended class. He never arrived at class on time. He usually fell asleep in class. He was using drugs. (b) All of the following are inter-process (IPC) communication mechanisms except p shared files.
    [Show full text]
  • Precise Garbage Collection for C
    Precise Garbage Collection for C Jon Rafkind Adam Wick John Regehr Matthew Flatt University of Utah Galois, Inc. University of Utah University of Utah [email protected] [email protected] [email protected] mfl[email protected] Abstract no-ops. The resulting program usually runs about as well as before, Magpie is a source-to-source transformation for C programs that but without the ongoing maintenance burden of manual memory enables precise garbage collection, where precise means that inte- management. In our experience, however, conservative GC works gers are not confused with pointers, and the liveness of a pointer poorly for long-running programs, such as a web server, a program- is apparent at the source level. Precise GC is primarily useful for ming environment, or an operating system kernel. For such pro- long-running programs and programs that interact with untrusted grams, conservative GC can trigger unbounded memory use due to components. In particular, we have successfully deployed precise linked lists [Boehm 2002] that manage threads and continuations; GC in the C implementation of a language run-time system that was this problem is usually due to liveness imprecision [Hirzel et al. originally designed to use conservative GC. We also report on our 2002], rather than type imprecision. Furthermore, the programs experience in transforming parts of the Linux kernel to use precise are susceptible to memory-exhaustion attack from malicious code GC instead of manual memory management. (e.g., user programs or untrusted servlets) that might be otherwise restricted through a sandbox [Wick and Flatt 2004]. Categories and Subject Descriptors D.4.2 [Storage Manage- This paper describes our design of and experience with a GC ment]: Garbage Collection for C that is less conservative.
    [Show full text]
  • Man Pages Section 3 Library Interfaces and Headers
    man pages section 3: Library Interfaces and Headers Part No: 816–5173–16 September 2010 Copyright © 2010, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related software documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are “commercial computer software” or “commercial technical data” pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms setforth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle America, Inc., 500 Oracle Parkway, Redwood City, CA 94065.
    [Show full text]
  • Part I: Unix Signals
    Part I: Unix Signals 1 Stopping a Program What if you run this program? int main () { while (1); printf("bye\n"); return 0; } What happens if you hit Ctl-C? Could you make Ctl-C print ªbyeº before exiting? 2-4 Signals A shell handles Ctl-C by sending the SIGINT signal to a process The sigaction() function can be used to install a signal handler See bye.c and bye2.c 5 Some Other Signals SIGHUP terminal is gone SIGQUIT please quit SIGKILL force quit (cannot handle) SIGSEGV seg fault SIGALRM timer expired SIGPIPE write to pipe with closed read end SIGCHLD child completed 6 Timers Use setitimer() to start a timer See timer.c and timer2.c... 7 Signal Handlers and Races Beware! Ð a signal handler is practically a thread Use sigprocmask() to (un)block signals See timer3.c 8 Part II: Deadlock · Conditions · Prevention · Detection 9 Deadlock is when two or more threads are waiting for an event that can only be generated by these same threads printer->Wait(); disk->Wait(); disk->Wait(); printer->Wait(); // copy from disk // copy from disk // to printer // to printer printer->Signal(); printer->Signal(); disk->Signal(); disk->Signal(); Deadlock can occur anytime threads acquire multiple resources (printers, disks, etc.), perform work, and then release their resources 10 Deadlock 11 Deadlock 12 Deadlock Examples · Linux: In-kernel memory allocator runs out of pages, causing an ªout of memory handlerº to run, which calls a function that tries to allocate a page. · Windows 2000: The OS keeps a pool of ªworker threadsº waiting to do work; one worker thread submits a job to another worker thread, but there are no free worker-thread slots.
    [Show full text]
  • Automatic Handling of Global Variables for Multi-Threaded MPI Programs
    Automatic Handling of Global Variables for Multi-threaded MPI Programs Gengbin Zheng, Stas Negara, Celso L. Mendes, Laxmikant V. Kale´ Eduardo R. Rodrigues Department of Computer Science Institute of Informatics University of Illinois at Urbana-Champaign Federal University of Rio Grande do Sul Urbana, IL 61801, USA Porto Alegre, Brazil fgzheng,snegara2,cmendes,[email protected] [email protected] Abstract— necessary to privatize global and static variables to ensure Hybrid programming models, such as MPI combined with the thread-safety of an application. threads, are one of the most efficient ways to write parallel ap- In high-performance computing, one way to exploit multi- plications for current machines comprising multi-socket/multi- core nodes and an interconnection network. Global variables in core platforms is to adopt hybrid programming models that legacy MPI applications, however, present a challenge because combine MPI with threads, where different programming they may be accessed by multiple MPI threads simultaneously. models are used to address issues such as multiple threads Thus, transforming legacy MPI applications to be thread-safe per core, decreasing amount of memory per core, load in order to exploit multi-core architectures requires proper imbalance, etc. When porting legacy MPI applications to handling of global variables. In this paper, we present three approaches to eliminate these hybrid models that involve multiple threads, thread- global variables to ensure thread-safety for an MPI program. safety of the applications needs to be addressed again. These approaches include: (a) a compiler-based refactoring Global variables cause no problem with traditional MPI technique, using a Photran-based tool as an example, which implementations, since each process image contains a sep- automates the source-to-source transformation for programs arate instance of the variable.
    [Show full text]
  • Threading and GUI Issues for R
    Threading and GUI Issues for R Luke Tierney School of Statistics University of Minnesota March 5, 2001 Contents 1 Introduction 2 2 Concurrency and Parallelism 2 3 Concurrency and Dynamic State 3 3.1 Options Settings . 3 3.2 User Defined Options . 5 3.3 Devices and Par Settings . 5 3.4 Standard Connections . 6 3.5 The Context Stack . 6 3.5.1 Synchronization . 6 4 GUI Events And Blocking IO 6 4.1 UNIX Issues . 7 4.2 Win32 Issues . 7 4.3 Classic MacOS Issues . 8 4.4 Implementations To Consider . 8 4.5 A Note On Java . 8 4.6 A Strategy for GUI/IO Management . 9 4.7 A Sample Implementation . 9 5 Threads and GUI’s 10 6 Threading Design Space 11 6.1 Parallelism Through HL Threads: The MXM Options . 12 6.2 Light-Weight Threads: The XMX Options . 12 6.3 Multiple OS Threads Running One At A Time: MSS . 14 6.4 Variations on OS Threads . 14 6.5 SMS or MXS: Which To Choose? . 14 7 Light-Weight Thread Implementation 14 1 March 5, 2001 2 8 Other Issues 15 8.1 High-Level GUI Interfaces . 16 8.2 High-Level Thread Interfaces . 16 8.3 High-Level Streams Interfaces . 16 8.4 Completely Random Stuff . 16 1 Introduction This document collects some random thoughts on runtime issues relating to concurrency, threads, GUI’s and the like. Some of this is extracted from recent R-core email threads. I’ve tried to provide lots of references that might be of use.
    [Show full text]
  • KAAPI: a Thread Scheduling Runtime System for Data Flow Computations
    KAAPI: A thread scheduling runtime system for data flow computations on cluster of multi-processors Thierry Gautier, Xavier Besseron, Laurent Pigeon INRIA, projet MOAIS LIG, Batiment^ ENSIMAG 51 avenue Jean-Kuntzmann F-38330 Montbonnot St Martin, France [email protected], [email protected], [email protected] ABSTRACT among the processors. In the work-stealing scheduling [7], The high availability of multiprocessor clusters for com- each processor gets its own stack implemented by a deque puter science seems to be very attractive to the engineer of frames. When a thread is created, a new frame is ini- because, at a first level, such computers aggregate high per- tialized and pushed at the bottom of the deque. When a formances. Nevertheless, obtaining peak performances on processor become idle, it tries to steal work from a victim irregular applications such as computer algebra problems re- processor with a non-empty deque; then it takes the top- mains a challenging problem. The delay to access memory is most frame (the least recently pushed frame) and places it non uniform and the irregularity of computations requires to in its own deque which is linked to the victim deque. use scheduling algorithms in order to automatically balance Such scheduling has been proven to be efficient for fully- the workload among the processors. strict multithreaded computations [7, 12] while requiring a This paper focuses on the runtime support implementa- bounded memory space with respect to a depth first sequen- tion to exploit with great efficiency the computation re- tial execution [8, 29]. sources of a multiprocessor cluster.
    [Show full text]
  • Brocade Fabric OS Administration Guide, 8.2.1
    ADMINISTRATION GUIDE Brocade Fabric OS Administration Guide, 8.2.1 Supporting Fabric OS 8.2.1 FOS-821-AG101 28 September 2018 Copyright © 2018 Brocade Communications Systems LLC. All Rights Reserved. Brocade and the stylized B logo are among the trademarks of Brocade Communications Systems LLC. Broadcom, the pulse logo, and Connecting everything are among the trademarks of Broadcom. The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries. Brocade, a Broadcom Inc. Company, reserves the right to make changes without further notice to any products or data herein to improve reliability, function, or design. Information furnished by Brocade is believed to be accurate and reliable. However, Brocade does not assume any liability arising out of the application or use of this information, nor the application or use of any product or circuit described herein, neither does it convey any license under its patent rights nor the rights of others. The product described by this document may contain open source software covered by the GNU General Public License or other open source license agreements. To find out which open source software is included in Brocade products, view the licensing terms applicable to the open source software, and obtain a copy of the programming source code, please visit https://www.broadcom.com/support/fibre-channel-networking/tools/oscd. Brocade Fabric OS Administration Guide, 8.2.1 2 FOS-821-AG101 Contents Introduction........................................................................................................................................................................................................................18
    [Show full text]
  • ELC PLATFORM SPECIFICATION Version 1.0
    ! ! ! ! !"# $"%&'()*+,$!#-'-#%&-(. /012345+678 "##$%&'()*'+',-'$).//. &90+!:;0<<0<+"35=>+#45241?3=: ! ! CONTENTS 1 Copyright and Licensing Terms...........................................................................................1 2 Acknowledgements.............................................................................................................1 3 Introduction.................................................................................................................. .......2 3.1 Purpose .......................................................................................................................2 3.2 Relationship to Other Industry Standards.....................................................................3 3.3 How To Use This Specification ...................................................................................4 3.4 Definitions...................................................................................................................4 3.4.1 ELCPS.................................................................................................................4 3.4.2 ELCPS-Compliant Application............................................................................4 3.4.3 ELCPS-Conforming Implementation ...................................................................4 3.4.4 Non-ELCPS-Compliant Application....................................................................5 3.4.5 ELCPS Implementation Conformance .................................................................5 3.4.6
    [Show full text]
  • A Debugging API for User-Level Thread Libraries
    User Level DB: a Debugging API for User-Level Thread Libraries Kevin Pouget∗ , Marc Perache´ y , Patrick Carribaulty and Herve´ Jourdreny ∗[email protected]; yfmarc.perache, patrick.carribault, [email protected] CEA, DAM, DIF F-91297 Arpajon France Abstract—With the advent of the multicore era, parallel THREAD DB, which lets them be controlled by common programming is becoming ubiquitous. Multithreading is a debuggers like GDB [6], DBX [7] or TOTALVIEW [8]. common approach to benefit from these architectures. Hybrid The use of user-level or hybrid thread libraries provides M:N libraries like MultiProcessor Communication (MPC) good performances but most of these thread libraries do or MARCEL reach high performance expressing fine-grain parallelism by mapping M user-level threads onto N kernel- not implement the THREAD DB API. Without this accurate level threads. However, such implementations skew the debug- support, debuggers can only handle LWPs (Light Weight gers’ ability to distinguish one thread from another, because Process) distinction, rather than end-user level threads. only kernel threads can be handled. SUN MICROSYSTEMS’ LWPs are related to the underlying OS. Their events can THREAD DB API is an interface between the debugger and ptrace the thread library allowing the debugger to inquire for thread be monitored through the system call [9]. Also semantics details. In this paper we introduce the USER LEVEL this function offers memories and registers access primitives. DB (ULDB) library, an implementation of the THREAD DB However, user threads only exist within their library. The interface abstracting the common features of user-level thread kernel is not aware that user threads are handled on a LWP libraries.
    [Show full text]
  • Accurate Recovery of Functions in COTS Binaries a Dissertation Presented by Rui Qiao to the Graduate School in Partial Fulfillme
    Accurate Recovery of Functions in COTS Binaries A Dissertation presented by Rui Qiao to The Graduate School in Partial Fulfillment of the Requirements for the Degree of Doctor of Philosophy in Computer Science Stony Brook University May 2017 Copyright by Rui Qiao 2017 Stony Brook University The Graduate School Rui Qiao We, the dissertation committe for the above candidate for the Doctor of Philosophy degree, hereby recommend acceptance of this dissertation Dr. R. Sekar - Dissertation Advisor Professor, Computer Science Department Dr. Michalis Polychronakis - Chairperson of Defense Assistant Professor, Computer Science Department Dr. Nick Nikiforakis - Committee Member Assistant Professor, Computer Science Department Dr. Aravind Prakash - External Committee Member Assistant Professor, Computer Science Department Binghamton University This dissertation is accepted by the Graduate School Charles Taber Dean of the Graduate School ii Abstract of the Dissertation Accurate Recovery of Functions in COTS Binaries by Rui Qiao Doctor of Philosophy in Computer Science Stony Brook University 2017 Binary analysis and instrumentation play a central role in COTS software security. They can be used to detect and prevent vulnerabilities, mitigate exploits, enforce security policies, and so on. Many security instrumentations work at the granularity of functions. How- ever, unlike high-level languages, functions in binaries are not clearly demar- cated. To complicate matters further, functions in binaries may have multiple entry points and/or exit points. Some of these entries or exits may not be determined simply by instruction syntax or code patterns. Moreover, many functions are reachable only through indirect control transfers, while some may be altogether unreachable. In this dissertation, we present an approach that overcomes these challenges to accurately identify function boundaries, as well as calls and returns.
    [Show full text]
  • Download Cert
    man pages section 3: Library Interfaces and Headers Part No: E29033 October 2012 Copyright © 1993, 2012, Oracle and/or its affiliates. All rights reserved. This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited. The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing. If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it on behalf of the U.S. Government, the following notice is applicable: U.S. GOVERNMENT END USERS. Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including anyoperating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government. This software or hardware is developed for general use in a variety of information management applications.
    [Show full text]