Let the Environment Variable Help

Total Page:16

File Type:pdf, Size:1020Kb

Let the Environment Variable Help Let t he Environment Variable Help You: Moving Files a cross Studies and C reating SAS ® Library On - The - G o David Liang, Chiltern International, Wilmington, NC ABSTRACT In clinical trials, datasets and SAS programs are often stored under different studies and pr oduct s in the UNIX file system . SAS p rogrammers need to access those locations frequently, to read in data for programming, or to copy files for reuse in new analysis. Typing the lengthy directory path is very time consuming and nerve - racking. This paper d escribes an efficient way to store the various directory paths in advance through environment variables . Those pre - defined environmen t variables can be used for UNIX file operation (cop y ing, deleting, searching for files, etc.). Information carried by thos e variables can also be passed into SAS to con struct libraries at your convenience . INTRODUCTION UNIX system is very popular in pharmaceutical industry. Clinical trial datasets (raw data, SDTM, ADaM), along with SAS programs , are often stored under various studies and products in the UNIX file system . Following is an example of the d irectory structure s in UNIX . /<product name>/<study name>/<analysis task>/<version>/rawdata/ /<product name>/<study name>/<analysis task>/<version>/sdtmdata/ /<product name>/<st udy name>/<analysis task>/<version>/adamdata/ /<product name>/<study name>/<analysis task>/<version>/prog/ SAS programmers need to access those files from one study directory to another , to read data into SAS programs, or to copy SAS programs for recycling . Typing the lengthy directory path is painful and time - consuming. UNIX environment is defined by environment variables . When you log in on UNIX, your current shell (login shell sets a unique working environment for you which is maintained until you log out. UNIX allows you to set environment variables . In this paper, a set of environment variables are used to store your commonly us ed study directory paths in the login file . Your login file may vary depending on the shell that you are using (.cshrc for C shell, .b ashrc for Bourne shell, etc. ). Once those variables are defined, you may use the environment variable name to replace the lengthy directory path during file operation , so that efficiency can be achieved. Furthermore, environment variables can se r ve a convenient way to pass information to SAS programs running under UNIX . You can access those variables through a filename “pipe” in combination of DATA step function SYSGET (Thacher 2010). In this paper, two methods are introduced for accessing those environment variables in SAS . One is through the %SYSGET function to retrieve a specific environment variable , while the other is to call a macro %SETENV to access a set of variables that you pre - defined. Study directory path information carried by those v ariables can now be utilized in constructing SAS libraries for data access. DEFINING ENVIRONMENT VARIABLES The way in which you define an environment variable depends on the shell that you are running. For Bourne shell (sh and bash), the syntax is: exp ort var = value 1 For C shell (csh and tcsh), the syntax is: s etenv var = value We will use Bourne shell as an example throughout this paper. When assigning study directory path to the environment variable , you have two choices. You may use the long versio n of path which points directly to the location where the datasets or programs stored . In that way, y ou only need to type the variable name when referring to that location . The drawback of that approach is that you have to create multiple environment varia ble s for each study when mu ltiple subdirectories under that study need to be accessed . See examples below, environment variables sxxx fd1r, sxxx fd2r, sxxx fv1r, sxxx f1p , and syyy f1p are created using that approach. Two of them ( sxxx f1p, syyy f1p ) will be used in the application example Ex1 in the next section. export sxxx fd1r = / pdtabc / sxxx /final/draft1/rawdata export sxxx fd2r = / pdtabc / sxxx /final/draft2/rawdata export sxxx fv1r = / pdtabc / sxxx /final/version1/rawdata export sxxx f1p = / pd tabc / sxxx /final/version1/prog export syyy f1p = / pdtabc / syyy /final/version1/prog On the other hand, you may use the short version of path, i.e., the path pointing to the study , rather than pointing to the datasets or program folders under that study. In that way, only o ne environment variable is needed for accessing the subdirectories under that study. Therefore, fewer environment variable names need to be memorized. See examples below. Those two variables will be used in the application examples (Ex2, Ex3, and Ex4) in the next section. export szzz = / pdtabc / szzz export swww = / pdtefg / swww USING ENVIRONMENT VARIABLES IN FILE OPERATION To use the environment variable in a UNIX command, you need to preface it with a dollar sign ( $ ) . This tells the comma nd interpreter that you want the variable's value, not its name, to be used. To see the value of an environment variable , you can use the echo command. echo $ < name > Following are some application examples to use environment variables in copying files acr oss studies, searching files in another location, and comparing files from different studies. COPYING FILES FROM ANOTHER STUDY LOCATION When a new analysis starts, you might want to borrow some programs from another similar study. The environment variable s come in handy when doing that kind of operation . See the two examples below . Ex 1. Copy t - demog.sas program from study xxx final analysis ver sion1 directory to study yyy final version1 directory. U NIX command without the environment variables is very len gthy. It’s a lot of typing. cp / pdtabc / sxxx /final/version1/prog/t - demog.sas / pdtabc / syyy /final/version1/prog/ 2 UNIX command using the pre - defined environment variables ( sxxx f1p, syyy f1p ) is very short and nea t. cp $ sxxx f1p/t - demog.sas $ syyy f1p Ex 2 . Copy t - demog.sas program from study zzz week 24 analysis ver sion1 directory to study www final analysis ver sion1 director y. UNIX command without the environment variables is like this: cp / pdtab c / szzz / wk_24 /version1/prog/t - demog.sas / pdtefg / swww / final/version1/ prog UNIX command using the pre - defined environment variables ( szzz , swww ) is shorter. cp $ szzz /wk_24/version1/prog/t - demog.sas $ swww / final/version1/ prog In Example 1, the two e nvironment variables are assigned with the full directory path of the program location. Therefore, the typing time is the least . In the 2 nd example, the two environment variables are as signed with the path of the studies , ra ther than the program location s . Therefore, a bit more typing is needed compared to the 1 st example. However, i n case you are familiar with the tab autocompleting feature in UNIX, the additional typing is actually very trivial. SEARCHING FILES FROM ANOTHER STUDY LOCATION Due to the com plexity of UNIX directory structures, looking for a SAS program from other study directories might not be easy . Fortunately, the find command provide you the tool to search files under a study directory and its sub - directories. With the use of environment variables , this tool is very easy to use. Ex 3 . Search t - snapshot.sas program under study zzz and it s sub - directories. The – p rint option instruct the command to display the search result when the search is completed. UNIX command without environment variab les : find / pdtabc / szzz – name t - snapshot.sas – print UNIX command using the environment variable ( szzz ) : find $ szzz – name t - snapshot.sas – print COMPARING FILES ACROSS STUDY LOCATIONS When recycling SAS programs from one analysis to another, we might want to know the difference between versions, so that the right version will be selected for new analysis. The diff command provides a simple wa y to do such comparison . Example 4 illustrates another application of the environment variables . Ex 4 . C ompare t he t - rnac.sas under study zzz week 48 version1 directory against the one under study www final draft2 . The options – wbi instructed the UNIX to ignore the white spaces and the change of cases. UNIX command without environment variables : diff - wbi / pdtabc / sz zz /wk_48/version1/prog/t - rnac .sas / pdtefg / swww /final/draft2 /prog/t - rnac .sas 3 UNIX command using environment variable s ( szzz , swww ): diff - wbi $ szzz / wk_48/version1/prog/t - rnac.sas $ swww / final /draft 2 /prog/t - rnac.sas Besides the application in UNIX file operation , information carried by the environment variable can be utilized in SAS programs too. We will illustrate the way to do that in the next section. CREATING SAS LIBRARY ON - THE - GO USING %SYSGET FUCTION There are several ways to pass infor mation from environment variables to SAS. One way is to use the %SYSGET function. See example below. 1 %let sxxx data=%sysget( sxxx fd1r); 2 Libname inputds “& sxxx data”; Line 1 uses %SYSGET function to retrieve the value of the environment variable sxx x d1r , and assign that value to the macro variable sxxx data through the %let statement. Line 2 associates the SAS library with the libref inputds through libname statement. Without the environment variable , we will need to write the following code to associ ate the SAS library. Libname inputds “ / pdtabc / sxxx /final/draft1/rawdata”; CREATING %SETENV MACRO The %SYSGET function approach allows us to retrieve a specific environment variable and use that value in the libname statement. In case you want to retrieve a set of environment variables at once, you may use the following %SETENV macro. 1 %macro setenv; 2 filename path _list pipe "set "; 3 data work.envvars; 4 length name $10 value $120; 5 infile path _lis t DLM='=' MISSOVER lrecl=32767; 6 input name $ value $; 7 if name ^= " " then do; 8 call symputx(name,value ); 9 end; 10 run; 11 %mend setenv; 4 Line 2 uses t he FILENAME statement to assign fileref to a pipe.
Recommended publications
  • Windows Command Prompt Cheatsheet
    Windows Command Prompt Cheatsheet - Command line interface (as opposed to a GUI - graphical user interface) - Used to execute programs - Commands are small programs that do something useful - There are many commands already included with Windows, but we will use a few. - A filepath is where you are in the filesystem • C: is the C drive • C:\user\Documents is the Documents folder • C:\user\Documents\hello.c is a file in the Documents folder Command What it Does Usage dir Displays a list of a folder’s files dir (shows current folder) and subfolders dir myfolder cd Displays the name of the current cd filepath chdir directory or changes the current chdir filepath folder. cd .. (goes one directory up) md Creates a folder (directory) md folder-name mkdir mkdir folder-name rm Deletes a folder (directory) rm folder-name rmdir rmdir folder-name rm /s folder-name rmdir /s folder-name Note: if the folder isn’t empty, you must add the /s. copy Copies a file from one location to copy filepath-from filepath-to another move Moves file from one folder to move folder1\file.txt folder2\ another ren Changes the name of a file ren file1 file2 rename del Deletes one or more files del filename exit Exits batch script or current exit command control echo Used to display a message or to echo message turn off/on messages in batch scripts type Displays contents of a text file type myfile.txt fc Compares two files and displays fc file1 file2 the difference between them cls Clears the screen cls help Provides more details about help (lists all commands) DOS/Command Prompt help command commands Source: https://technet.microsoft.com/en-us/library/cc754340.aspx.
    [Show full text]
  • Command Line Interface Specification Windows
    Command Line Interface Specification Windows Online Backup Client version 4.3.x 1. Introduction The CloudBackup Command Line Interface (CLI for short) makes it possible to access the CloudBackup Client software from the command line. The following actions are implemented: backup, delete, dir en restore. These actions are described in more detail in the following paragraphs. For all actions applies that a successful action is indicated by means of exit code 0. In all other cases a status code of 1 will be used. 2. Configuration The command line client needs a configuration file. This configuration file may have the same layout as the configuration file for the full CloudBackup client. This configuration file is expected to reside in one of the following folders: CLI installation location or the settings folder in the CLI installation location. The name of the configuration file must be: Settings.xml. Example: if the CLI is installed in C:\Windows\MyBackup\, the configuration file may be in one of the two following locations: C:\Windows\MyBackup\Settings.xml C:\Windows\MyBackup\Settings\Settings.xml If both are present, the first form has precedence. Also the customer needs to edit the CloudBackup.Console.exe.config file which is located in the program file directory and edit the following line: 1 <add key="SettingsFolder" value="%settingsfilelocation%" /> After making these changes the customer can use the CLI instruction to make backups and restore data. 2.1 Configuration Error Handling If an error is found in the configuration file, the command line client will issue an error message describing which value or setting or option is causing the error and terminate with an exit value of 1.
    [Show full text]
  • Answers to Even- Numbered Exercises 5
    Answers to Even- Numbered Exercises 5 from page 163 1. What does the shell ordinarily do while a command is executing? What should you do if you do not want to wait for a command to finish before running another command? 2. Using sort as a filter, rewrite the following sequence of commands: $ sort list > temp $ lpr temp $ rm temp $ cat list | sort | lpr 3. What is a PID number? Why are they useful when you run processes in the background? 4. Assume that the following files are in the working directory: $ ls intro notesb ref2 section1 section3 section4b notesa ref1 ref3 section2 section4a sentrev Give commands for each of the following, using wildcards to express filenames with as few characters as possible. 1 2 Chapter 5 Answers to Exercises a. List all files that begin with section. $ ls section* b. List the section1, section2, and section3 files only. $ ls section[1-3] c. List the intro file only. $ ls i* d. List the section1, section3, ref1, and ref3 files. $ ls *[13] 5. Refer to the documentation of utilities in Part III or the man pages to determine what commands will a. Output the number of lines in the standard input that contain the word a or A. b. Output only the names of the files in the working directory that contain the pattern $(. c. List the files in the working directory in their reverse alphabetical order. d. Send a list of files in the working directory to the printer, sorted by size. 6. Give a command to a. Redirect the standard output from a sort command into a file named phone_list.
    [Show full text]
  • Your Performance Task Summary Explanation
    Lab Report: 11.2.5 Manage Files Your Performance Your Score: 0 of 3 (0%) Pass Status: Not Passed Elapsed Time: 6 seconds Required Score: 100% Task Summary Actions you were required to perform: In Compress the D:\Graphics folderHide Details Set the Compressed attribute Apply the changes to all folders and files In Hide the D:\Finances folder In Set Read-only on filesHide Details Set read-only on 2017report.xlsx Set read-only on 2018report.xlsx Do not set read-only for the 2019report.xlsx file Explanation In this lab, your task is to complete the following: Compress the D:\Graphics folder and all of its contents. Hide the D:\Finances folder. Make the following files Read-only: D:\Finances\2017report.xlsx D:\Finances\2018report.xlsx Complete this lab as follows: 1. Compress a folder as follows: a. From the taskbar, open File Explorer. b. Maximize the window for easier viewing. c. In the left pane, expand This PC. d. Select Data (D:). e. Right-click Graphics and select Properties. f. On the General tab, select Advanced. g. Select Compress contents to save disk space. h. Click OK. i. Click OK. j. Make sure Apply changes to this folder, subfolders and files is selected. k. Click OK. 2. Hide a folder as follows: a. Right-click Finances and select Properties. b. Select Hidden. c. Click OK. 3. Set files to Read-only as follows: a. Double-click Finances to view its contents. b. Right-click 2017report.xlsx and select Properties. c. Select Read-only. d. Click OK. e.
    [Show full text]
  • What Is UNIX? the Directory Structure Basic Commands Find
    What is UNIX? UNIX is an operating system like Windows on our computers. By operating system, we mean the suite of programs which make the computer work. It is a stable, multi-user, multi-tasking system for servers, desktops and laptops. The Directory Structure All the files are grouped together in the directory structure. The file-system is arranged in a hierarchical structure, like an inverted tree. The top of the hierarchy is traditionally called root (written as a slash / ) Basic commands When you first login, your current working directory is your home directory. In UNIX (.) means the current directory and (..) means the parent of the current directory. find command The find command is used to locate files on a Unix or Linux system. find will search any set of directories you specify for files that match the supplied search criteria. The syntax looks like this: find where-to-look criteria what-to-do All arguments to find are optional, and there are defaults for all parts. where-to-look defaults to . (that is, the current working directory), criteria defaults to none (that is, select all files), and what-to-do (known as the find action) defaults to ‑print (that is, display the names of found files to standard output). Examples: find . –name *.txt (finds all the files ending with txt in current directory and subdirectories) find . -mtime 1 (find all the files modified exact 1 day) find . -mtime -1 (find all the files modified less than 1 day) find . -mtime +1 (find all the files modified more than 1 day) find .
    [Show full text]
  • NETSTAT Command
    NETSTAT Command | NETSTAT Command | Use the NETSTAT command to display network status of the local host. | | ┌┐────────────── | 55──NETSTAT─────6─┤ Option ├─┴──┬────────────────────────────────── ┬ ─ ─ ─ ────────────────────────────────────────5% | │┌┐───────────────────── │ | └─(──SELect───6─┤ Select_String ├─┴ ─ ┘ | Option: | ┌┐─COnn────── (1, 2) ──────────────── | ├──┼─────────────────────────── ┼ ─ ──────────────────────────────────────────────────────────────────────────────┤ | ├─ALL───(2)──────────────────── ┤ | ├─ALLConn─────(1, 2) ────────────── ┤ | ├─ARp ipaddress───────────── ┤ | ├─CLients─────────────────── ┤ | ├─DEvlinks────────────────── ┤ | ├─Gate───(3)─────────────────── ┤ | ├─┬─Help─ ┬─ ───────────────── ┤ | │└┘─?──── │ | ├─HOme────────────────────── ┤ | │┌┐─2ð────── │ | ├─Interval─────(1, 2) ─┼───────── ┼─ ┤ | │└┘─seconds─ │ | ├─LEVel───────────────────── ┤ | ├─POOLsize────────────────── ┤ | ├─SOCKets─────────────────── ┤ | ├─TCp serverid───(1) ─────────── ┤ | ├─TELnet───(4)───────────────── ┤ | ├─Up──────────────────────── ┤ | └┘─┤ Command ├───(5)──────────── | Command: | ├──┬─CP cp_command───(6) ─ ┬ ────────────────────────────────────────────────────────────────────────────────────────┤ | ├─DELarp ipaddress─ ┤ | ├─DRop conn_num──── ┤ | └─RESETPool──────── ┘ | Select_String: | ├─ ─┬─ipaddress────(3) ┬ ─ ───────────────────────────────────────────────────────────────────────────────────────────┤ | ├─ldev_num─────(4) ┤ | └─userid────(2) ─── ┘ | Notes: | 1 Only ALLCON, CONN and TCP are valid with INTERVAL. | 2 The userid
    [Show full text]
  • Pingdirectory Administration Guide Version
    Release 7.3.0.3 Server Administration Guide PingDirectory | Contents | ii Contents PingDirectory™ Product Documentation................................................ 20 Overview of the Server............................................................................. 20 Server Features.................................................................................................................................20 Administration Framework.................................................................................................................21 Server Tools Location....................................................................................................................... 22 Preparing Your Environment....................................................................22 Before You Begin.............................................................................................................................. 22 System requirements..............................................................................................................22 Installing Java......................................................................................................................... 23 Preparing the Operating System (Linux).......................................................................................... 24 Configuring the File Descriptor Limits.................................................................................... 24 File System Tuning.................................................................................................................25
    [Show full text]
  • 1. Run Nslookup to Obtain the IP Address of a Web Server in Europe
    1. Run nslookup to obtain the IP address of a Web server in Europe. frigate:Desktop drb$ nslookup home.web.cern.ch Server: 130.215.32.18 Address: 130.215.32.18#53 Non-authoritative answer: home.web.cern.ch canonical name = drupalprod.cern.ch. Name: drupalprod.cern.ch Address: 137.138.76.28 Note that the #53 denotes the DNS service is running on port 53. 2. Run nslookup to determine the authoritative DNS servers for a university in Asia. frigate:Desktop drb$ nslookup -type=NS tsinghua.edu.cn Server: 130.215.32.18 Address: 130.215.32.18#53 Non-authoritative answer: tsinghua.edu.cn nameserver = dns2.tsinghua.edu.cn. tsinghua.edu.cn nameserver = dns.tsinghua.edu.cn. tsinghua.edu.cn nameserver = dns2.edu.cn. tsinghua.edu.cn nameserver = ns2.cuhk.edu.hk. Authoritative answers can be found from: dns2.tsinghua.edu.cn internet address = 166.111.8.31 ns2.cuhk.edu.hk internet address = 137.189.6.21 ns2.cuhk.edu.hk has AAAA address 2405:3000:3:6::15 dns2.edu.cn internet address = 202.112.0.13 dns.tsinghua.edu.cn internet address = 166.111.8.30 Note that there can be multiple authoritative servers. The response we got back was from a cached record. To confirm the authoritative DNS servers, we perform the same DNS query of one of the servers that can provide authoritative answers. frigate:Desktop drb$ nslookup -type=NS tsinghua.edu.cn dns.tsinghua.edu.cn Server: dns.tsinghua.edu.cn Address: 166.111.8.30#53 tsinghua.edu.cn nameserver = dns2.edu.cn.
    [Show full text]
  • Docker Windows Task Scheduler
    Docker Windows Task Scheduler Genealogical Scarface glissading, his karyotype outgone inflicts overflowingly. Rudolph is accessorial and suckers languorously as sociologistic Engelbart bridled sonorously and systematises sigmoidally. Which Cecil merchandises so unbelievably that Cole comedowns her suavity? Simple task runner that runs pending tasks in Redis when Docker container. With Docker Content Trust, see will soon. Windows Tip Run applications in extra background using Task. Cronicle is a multi-server task scheduler and runner with a web based front-end UI It handles both scheduled repeating and on-demand jobs targeting any. Django project that you would only fetch of windows task directory and how we may seem. Docker schedulers and docker compose utility program by learning service on a scheduled time, operators and manage your already interact with. You get a byte array elements followed by the target system privileges, manage such data that? Machine learning service Creatio Academy. JSON list containing all my the jobs. As you note have noticed, development, thank deity for this magazine article. Docker-crontab A docker job scheduler aka crontab for. Careful with your terminology. Sometimes you and docker schedulers for task failed job gets silently redirected to get our task. Here you do want to docker swarm, task scheduler or scheduled background tasks in that. Url into this script in one easy to this was already existing cluster created, it retry a little effort. Works pretty stark deviation from your code is followed by searching for a process so how to be executed automatically set. Now docker for windows service container in most amateur players play to pass as.
    [Show full text]
  • Introduction to Unix Shell
    Introduction to Unix Shell François Serra, David Castillo, Marc A. Marti- Renom Genome Biology Group (CNAG) Structural Genomics Group (CRG) Run Store Programs Data Communicate Interact with each other with us The Unix Shell Introduction Interact with us Rewiring Telepathy Typewriter Speech WIMP The Unix Shell Introduction user logs in The Unix Shell Introduction user logs in user types command The Unix Shell Introduction user logs in user types command computer executes command and prints output The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command computer executes command and prints output The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command computer executes command and prints output ⋮ user logs off The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command computer executes command and prints output ⋮ user logs off The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command computer executes command and prints output ⋮ user logs off shell The Unix Shell Introduction user logs in user types command computer executes command and prints output user types another command computer executes command and prints output
    [Show full text]
  • Command-Line IP Utilities This Document Lists Windows Command-Line Utilities That You Can Use to Obtain TCP/IP Configuration Information and Test IP Connectivity
    Guide to TCP/IP: IPv6 and IPv4, 5th Edition, ISBN 978-13059-4695-8 Command-Line IP Utilities This document lists Windows command-line utilities that you can use to obtain TCP/IP configuration information and test IP connectivity. Command parameters and uses are listed for the following utilities in Tables 1 through 9: ■ Arp ■ Ipconfig ■ Netsh ■ Netstat ■ Pathping ■ Ping ■ Route ■ Tracert ARP The Arp utility reads and manipulates local ARP tables (data link address-to-IP address tables). Syntax arp -s inet_addr eth_addr [if_addr] arp -d inet_addr [if_addr] arp -a [inet_address] [-N if_addr] [-v] Table 1 ARP command parameters and uses Parameter Description -a or -g Displays current entries in the ARP cache. If inet_addr is specified, the IP and data link address of the specified computer appear. If more than one network interface uses ARP, entries for each ARP table appear. inet_addr Specifies an Internet address. -N if_addr Displays the ARP entries for the network interface specified by if_addr. -v Displays the ARP entries in verbose mode. -d Deletes the host specified by inet_addr. -s Adds the host and associates the Internet address inet_addr with the data link address eth_addr. The physical address is given as six hexadecimal bytes separated by hyphens. The entry is permanent. eth_addr Specifies physical address. if_addr If present, this specifies the Internet address of the interface whose address translation table should be modified. If not present, the first applicable interface will be used. Pyles, Carrell, and Tittel 1 Guide to TCP/IP: IPv6 and IPv4, 5th Edition, ISBN 978-13059-4695-8 IPCONFIG The Ipconfig utility displays and modifies IP address configuration information.
    [Show full text]
  • Catalyst 9500 Switches)
    System Management Configuration Guide, Cisco IOS XE Gibraltar 16.12.x (Catalyst 9500 Switches) First Published: 2019-07-31 Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com Tel: 408 526-4000 800 553-NETS (6387) Fax: 408 527-0883 THE SPECIFICATIONS AND INFORMATION REGARDING THE PRODUCTS IN THIS MANUAL ARE SUBJECT TO CHANGE WITHOUT NOTICE. ALL STATEMENTS, INFORMATION, AND RECOMMENDATIONS IN THIS MANUAL ARE BELIEVED TO BE ACCURATE BUT ARE PRESENTED WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED. USERS MUST TAKE FULL RESPONSIBILITY FOR THEIR APPLICATION OF ANY PRODUCTS. THE SOFTWARE LICENSE AND LIMITED WARRANTY FOR THE ACCOMPANYING PRODUCT ARE SET FORTH IN THE INFORMATION PACKET THAT SHIPPED WITH THE PRODUCT AND ARE INCORPORATED HEREIN BY THIS REFERENCE. IF YOU ARE UNABLE TO LOCATE THE SOFTWARE LICENSE OR LIMITED WARRANTY, CONTACT YOUR CISCO REPRESENTATIVE FOR A COPY. The Cisco implementation of TCP header compression is an adaptation of a program developed by the University of California, Berkeley (UCB) as part of UCB's public domain version of the UNIX operating system. All rights reserved. Copyright © 1981, Regents of the University of California. NOTWITHSTANDING ANY OTHER WARRANTY HEREIN, ALL DOCUMENT FILES AND SOFTWARE OF THESE SUPPLIERS ARE PROVIDED “AS IS" WITH ALL FAULTS. CISCO AND THE ABOVE-NAMED SUPPLIERS DISCLAIM ALL WARRANTIES, EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, THOSE OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OR ARISING FROM A COURSE OF DEALING, USAGE, OR TRADE PRACTICE. IN NO EVENT SHALL CISCO OR ITS SUPPLIERS BE LIABLE FOR ANY INDIRECT, SPECIAL, CONSEQUENTIAL, OR INCIDENTAL DAMAGES, INCLUDING, WITHOUT LIMITATION, LOST PROFITS OR LOSS OR DAMAGE TO DATA ARISING OUT OF THE USE OR INABILITY TO USE THIS MANUAL, EVEN IF CISCO OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
    [Show full text]