How do capability macros get named?


 
Thread Tools Search this Thread
Top Forums Programming How do capability macros get named?
# 1  
Old 05-22-2007
How do capability macros get named?

The following is taken from some production code:

#ifdef LOCK_LOCKF
#ifdef HAVE_SYS_FILE_H
#include <sys/lockf.h>
#endif
#ifdef HAVE_SYS_FILE_H
#include <sys/file.h>
#endif
#define LOCK(file) fseek(file, 0L, 0), lockf(file, 1, 0L)
#define UNLOCK(file) fseek(file, 0L, 0), lockf(file, 0, 0L)
#endif /* LOCK_LOCKF */

#ifdef LOCK_LOCKING
#ifdef HAVE_SYS_LOCKING_H
#include <sys/locking.h>
#endif
#define LOCK(file) fseek(file, 0L, 0), chk_lock(file, 1)
#define UNLOCK(file) fseek(file, 0L, 0), chk_lock(file, 0)
#endif /* LOCK_LOCKING */

#ifdef LOCK_NONE
#define LOCK(file)
#define UNLOCK(file)
#endif /* LOCK_NONE */


Are the names LOCK_LOCKF, LOCK_LOCKING, and LOCK_NONE arbritrary? Ie, could they have been names LOCKF, LOCKING, and NONE instead?
# 2  
Old 05-23-2007
Yes. They are arbitrary. _DEFINE_POSIX_SOURCE _XOPEN_SOURCE are not - they are some of the feature test macros defined by POSIX, or GNU or whoever.

You should not change contents of compiler header files. And if you come up with a name conflict problem, change the name of your test macros to something else.
# 3  
Old 05-23-2007
The HAVE_xxxx defines come from "configure" which does a ton of test compilations to see what includes/functions/types/capabilities your machine has.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Macros how-to?

Hi, all I just came to new system with RH, and it has alot of macros I was told to use, but I can't find how to open it for display or for edit, can you help me please, is it all about make/makefile? let say I have macro <trx> like this, that does a lot of things: >$ trx ... creating new... (1 Reply)
Discussion started by: trento17
1 Replies

2. Programming

help with atoi and macros in C

I have a PORT_NUM macro (10 digits long number) in a server file, if i do htons(PORT_NUM) i get warning: this decimal constant is unsigned only in ISO C90 warning: large integer implicitly truncated to unsigned type whats wrong with this? (2 Replies)
Discussion started by: omega666
2 Replies

3. UNIX for Advanced & Expert Users

Using Macros in sftp command

Hi, I've some existing scripts wherein am using ftp + .netrc. I've defined my macros in .netrc file. I want to switch to sftp now but it seems it doesn't support macros and .netrc and it gives "command invalid" error. Is there any other alternative? Note: I don't want help for... (1 Reply)
Discussion started by: ps51517
1 Replies

4. Linux

What are the meaning of these macros..

Masters, I am trying to learn the serial mouse driver for linux kernel. On the kernel source tree I find out these macros and I am unable to find out the meaning of these macros. Please anyone help me to understand these. These macros are defined in linux/serio.h... (2 Replies)
Discussion started by: iamjayanth
2 Replies

5. UNIX for Dummies Questions & Answers

MAKE and its macros and variables

I want to build a Makefile that simply takes a template file and modifies it (sed or perl, probably) before installing the result in the right place - my problem is creating the variable for substitution... So I have SYSTEM = SYS1 SYS2 SYS1_CHANNELS = CHANNEL1 CHANNEL2 CHANNEL4... (1 Reply)
Discussion started by: JerryHone
1 Replies

6. Shell Programming and Scripting

Expect Terminal Macros

Hey people! I just started out working at an ISP as tech support and thought that I should ease the work load by scripting some small macros. I create different commands with Alias through .bashrc which are all directed to the same script file. Here I planned on using Expect to run different... (0 Replies)
Discussion started by: GhettoFish
0 Replies

7. Programming

One last question about capability macros

This might be poorly worded. In the header file, I have #ifdef LOCK_FCNTL #ifdef HAVE_FCNTL_H #include <fcntl.h> #endif #define LOCK(file) setlock(fileno(file), F_WRLCK); #define UNLOCK(file) setlock(fileno(file), F_UNLCK); #endif /* LOCK_FCNTL */ #ifdef LOCK_FLOCK #ifdef... (1 Reply)
Discussion started by: frequency8
1 Replies

8. UNIX for Dummies Questions & Answers

saving macros for VIM

The question is , as the topic says, how does one save macros for VIM in the .vimrc. I had a look on web and it gave all this ****** about how to build turing machines in vim code or something but i just want to store a macro to like : if(){ } I know how to do it IN vim but .vimrc??????!?!?!... (3 Replies)
Discussion started by: yngwie
3 Replies

9. UNIX for Dummies Questions & Answers

troff macros

Hi, I'm going write a small handbook. The typesetting software I'm going to use is troff. There are -ms -me -mm macros for troff. Which one is the most suitable? Thanks! -Tony (2 Replies)
Discussion started by: tonyt
2 Replies
Login or Register to Ask a Question