| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  | #! /usr/bin/env python | 
					
						
							|  |  |  | """Test program for the fcntl C module.
 | 
					
						
							|  |  |  |    Roger E. Masse | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | import struct | 
					
						
							|  |  |  | import fcntl | 
					
						
							|  |  |  | import FCNTL | 
					
						
							| 
									
										
										
										
											1997-12-09 16:56:41 +00:00
										 |  |  | import os, sys | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  | from test_support import verbose | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | filename = '/tmp/delete-me' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | # the example from the library docs | 
					
						
							|  |  |  | f = open(filename,'w') | 
					
						
							| 
									
										
										
										
											1997-05-22 20:48:03 +00:00
										 |  |  | rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETFL, os.O_NONBLOCK) | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  | if verbose: | 
					
						
							| 
									
										
										
										
											1997-05-22 20:48:03 +00:00
										 |  |  |     print 'Status from fnctl with O_NONBLOCK: ', rv | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  |      | 
					
						
							| 
									
										
										
										
											1999-04-08 20:27:54 +00:00
										 |  |  | if sys.platform in ('netbsd1', | 
					
						
							|  |  |  |                     'freebsd2', 'freebsd3', | 
					
						
							| 
									
										
										
										
											2000-05-08 17:31:04 +00:00
										 |  |  |                     'bsdos2', 'bsdos3', 'bsdos4', | 
					
						
							|  |  |  |                     'openbsd', 'openbsd2'): | 
					
						
							| 
									
										
										
										
											1997-12-09 16:56:41 +00:00
										 |  |  |     lockdata = struct.pack('lxxxxlxxxxlhh', 0, 0, 0, FCNTL.F_WRLCK, 0) | 
					
						
							|  |  |  | elif sys.platform in ['aix3', 'aix4']: | 
					
						
							|  |  |  |     lockdata = struct.pack('hhlllii', FCNTL.F_WRLCK, 0, 0, 0, 0, 0, 0) | 
					
						
							|  |  |  | else: | 
					
						
							|  |  |  |     lockdata = struct.pack('hhllhh', FCNTL.F_WRLCK, 0, 0, 0, 0, 0) | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  | if verbose: | 
					
						
							| 
									
										
										
										
											1997-05-22 20:48:03 +00:00
										 |  |  |     print 'struct.pack: ', `lockdata` | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  |      | 
					
						
							|  |  |  | rv = fcntl.fcntl(f.fileno(), FCNTL.F_SETLKW, lockdata) | 
					
						
							|  |  |  | if verbose: | 
					
						
							| 
									
										
										
										
											1997-05-22 20:48:03 +00:00
										 |  |  |     print 'String from fcntl with F_SETLKW: ', `rv` | 
					
						
							| 
									
										
										
										
											1997-04-02 06:13:34 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | f.close() | 
					
						
							|  |  |  | os.unlink(filename) |