which head file for major and minor function?


 
Thread Tools Search this Thread
Top Forums Programming which head file for major and minor function?
# 1  
Old 05-25-2009
Question which head file for major and minor function?

Code:
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/termios.h>
#include <stdio.h>
#include <stdlib.h>		
#include <stddef.h>		
#include <string.h>		
#include <unistd.h>		
#include <signal.h>	
#include <sys/mkdev.h>

int
main(int argc, char *argv[])
{
  int	i;
  struct stat	buf;

  for (i = 1; i < argc; i++) {
	printf("%s: ", argv[i]);
	if (stat(argv[i], &buf) < 0) {
		err_ret("stat error");
		continue;
	}

	printf("dev = %d/%d", major(buf.st_dev),  minor(buf.st_dev));

	if (S_ISCHR(buf.st_mode) || S_ISBLK(buf.st_mode)) {
		printf(" (%s) rdev = %d/%d",(S_ISCHR(buf.st_mode)) ? "character" : "block",
		major(buf.st_rdev), minor(buf.st_rdev));
	}
	printf("\n");
  }

  exit(0);
}

when I compile above code,it raise following error:
Undefined first referenced
symbol in file
major /var/tmp/ccwkRAdK.o
minor /var/tmp/ccwkRAdK.o
ld: fatal: Symbol referencing errors. No output written to a.out

What raise above error? which head file include major and minor function? How to correct my above code?

Thanks!
# 2  
Old 05-25-2009
This is OS-specific. To help others answer your question, please specify the OS (and version). In Linux 2.6, these are defined in linux/kdev_t.h, but are MAJOR(dev) and MINOR(dev).
# 3  
Old 05-26-2009
Quote:
Originally Posted by otheus
This is OS-specific. To help others answer your question, please specify the OS (and version). In Linux 2.6, these are defined in linux/kdev_t.h, but are MAJOR(dev) and MINOR(dev).
My OS is Solaris 10,which head file the major and minor function defined?
# 4  
Old 05-27-2009
That is puzzling...under Solaris major and minor are macros defined in sys/mkdev.h header which is included in the source so don't know what to make of it.
# 5  
Old 05-27-2009
I've encountered things like this, especially when turning on XOPEN features.
Anyway Try one of two things

#1 add
Code:
#define _XOPEN_SOURCE
// or maybe 
#define _XOPEN_SOURCE_EXTENDED

before any include statements read your man page to see what standards major() and minor() are supposed to conform to.
It is usually near the very last lines of the man page.

#2
The relative position of include files (read Marc Rochkind's 'Advanced UNIX Programming' for a discussion of this problem) sometimes screws up a macro or a function definition.
Try moving mkdev.h to near the top of the list of includes.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Filtering my major and minor values

I want to remove all rows with a minor repeating count less than 30% compared to the major repeating count from my table. The values of a col(starting col 2) can assume is A,T,G,C and N. Each row has at least 2 values and at most 4 repeating values(out of ATGC). N is considered a missing value... (12 Replies)
Discussion started by: newbie83
12 Replies

2. Solaris

Major and Minor number of Virtual File System

Hi friends, Please let me know if there is any way to find out Major and Minor numbers of virtual file system like below: /devices 0K 0K 0K 0% /devices ctfs 0K 0K 0K 0% /system/contract proc 0K 0K ... (8 Replies)
Discussion started by: nitj
8 Replies

3. Shell Programming and Scripting

How to filter out major and minor?

Hi, I have line like this : proj_name/module/trunk/module_1_0 where the first "1" refers to major version and second "0" refers to minor version. any AWK or command like that so that I can filter out the major and minor ? like major= command | input line minor= command |... (4 Replies)
Discussion started by: bhaskar_m
4 Replies

4. AIX

Difference between Major and Minor in AIX

Difference between Major and Minor in AIX (5 Replies)
Discussion started by: AIXlearner
5 Replies

5. AIX

how do I change major-minor numbers of disk devices

Good evening ... does anyone of you know how to change major/minor numbers of disk devices ? I had to migrate from raid1 to raid5 and this messed up my ASM cluster - I know which devices should have which IDs to match the content - but I have no idea how to change it. Any help would be... (2 Replies)
Discussion started by: zxmaus
2 Replies

6. Solaris

Help with Major and minor number

Hi Does anyone know what the major and minor numbers are in Solaris? (2 Replies)
Discussion started by: wisdom
2 Replies

7. Shell Programming and Scripting

sort major.minor.release_build_x

would like to order this input based on major.minor.release AND build number Label abc_def_0.0.3_build_999 2008/08/01 'Created by me.' Label abc_def_0.0.9_build_1000 2008/08/01 'Created by me.' Label abc_def_9.0.9_build_10001 2008/08/01 'Created by me.' Label abc_def_10.9.100_build_2... (4 Replies)
Discussion started by: gurpal2000
4 Replies

8. Solaris

major & minor number

Hi Can anyone tell me what is major number and minor number in the mknod command. Also what these numbers mean. I have gone through the man pages but still I couldn't understand. Regards (3 Replies)
Discussion started by: RajaRC
3 Replies

9. Programming

Device Major/Minor numbers

To further my fledgling knowledge of C, I am re-writing some of the Unix command set. My current command is an ls-style command. All works well, except for device files. How do I get the major/minor numbers for the dev files? I see from the stat struct there are st_rdev and st_dev members. Do... (1 Reply)
Discussion started by: zazzybob
1 Replies
Login or Register to Ask a Question