1998-02-11 22:31:54 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								\section{Standard Modules \sectcode{anydbm} and \sectcode{dumbdbm}}
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								\label{module-anydbm}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\label{module-dumbdbm}
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\stmodindex{anydbm}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\stmodindex{dumbdbm}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								\module{anydbm} is a generic interface to variants of the DBM
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								database--DBM, GDBM, or dbhash.  If none of these modules is
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								installed, the slow-but-simple implementation in module \module{dumbdbm}
							 | 
						
					
						
							
								
									
										
										
										
											1997-05-09 02:23:45 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								will be used.   Both modules provide the same interface:
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											1997-11-30 05:38:44 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								% not the best solution, but it's what you get for documenting both
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								% at the same time.
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-13 06:58:54 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								\setindexsubitem{(in modules anydbm, dumbdbm)}
							 | 
						
					
						
							
								
									
										
										
										
											1997-11-30 05:38:44 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\begin{funcdesc}{open}{filename\optional{\, flag\, mode}}
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Open the database file \var{filename} and return a corresponding object.
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								The optional \var{flag} argument can be
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\code{'r'} to open an existing database for reading only,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\code{'w'} to open an existing database for reading and writing,
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\code{'c'} to create the database if it doesn't exist, or
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\code{'n'}, which will always create a new empty database.  If not
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								specified, the default value is \code{'r'}.
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								The optional \var{mode} argument is the \UNIX{} mode of the file, used
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								only when the database has to be created.  It defaults to octal
							 | 
						
					
						
							
								
									
										
										
										
											1997-05-09 02:23:45 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								\code{0666} (and will be modified by the prevailing umask).
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\end{funcdesc}
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								The object returned by \function{open()} supports most of the same
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								functionality as dictionaries; keys and their corresponding values can
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								be stored, retrieved, and deleted, and the \method{has_key()} and
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								\method{keys()} methods are available.  Keys and values must always be
							 | 
						
					
						
							
								
									
										
										
										
											1997-05-09 02:23:45 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								strings.
							 | 
						
					
						
							
								
									
										
										
										
											1997-04-03 22:41:49 +00:00
										 
									 
								 
							 | 
							
								
							 | 
							
								
							 | 
							
							
								
							 | 
						
					
						
							
								
									
										
										
										
											1998-02-18 15:05:47 +00:00
										 
									 
								 
							 | 
							
								
									
										
									
								
							 | 
							
								
							 | 
							
							
								Both modules also export the exception \exception{error}, which is
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								raised for various problems.  The \exception{anydbm.error} exception
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								is simply a different name for the \exception{error} exception of the
							 | 
						
					
						
							| 
								
							 | 
							
								
							 | 
							
								
							 | 
							
							
								underlying implementation module used.
							 |