Changeset 5167 for trunk/libtransmission/platform.c
- Timestamp:
- Feb 28, 2008, 7:06:23 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libtransmission/platform.c
r5164 r5167 450 450 return buf; 451 451 } 452 453 /*** 454 **** 455 ***/ 456 457 int 458 tr_lockfile( const char * filename ) 459 { 460 int ret; 461 462 #ifdef WIN32 463 464 HANDLE file = CreateFile( filename, 465 GENERIC_READ|GENERIC_WRITE, 466 FILE_SHARE_READ|FILE_SHARE_WRITE, 467 NULL, 468 OPEN_ALWAYS, 469 FILE_ATTRIBUTE_NORMAL, 470 NULL ); 471 if( file == INVALID_HANDLE_VALUE ) 472 ret = TR_LOCKFILE_EOPEN; 473 else if( !LockFile( file, 0, 0, 1, 1 ) ) 474 ret = TR_LOCKFILE_ELOCK; 475 else 476 ret = TR_LOCKFILE_SUCCESS; 477 478 #else 479 480 int fd = open( filename, O_RDWR | O_CREAT, 0666 ); 481 if( fd < 0 ) 482 ret = TR_LOCKFILE_EOPEN; 483 else { 484 struct flock lk; 485 memset( &lk, 0, sizeof( lk ) ); 486 lk.l_start = 0; 487 lk.l_len = 0; 488 lk.l_type = F_WRLCK; 489 lk.l_whence = SEEK_SET; 490 if( -1 == fcntl( fd, F_SETLK, &lk ) ) 491 ret = TR_LOCKFILE_ELOCK; 492 else 493 ret = TR_LOCKFILE_SUCCESS; 494 } 495 496 #endif 497 498 return ret; 499 }
Note: See TracChangeset
for help on using the changeset viewer.