Sponsored Content
Full Discussion: How does NORET_TYPE works ?
Operating Systems Linux How does NORET_TYPE works ? Post 302162136 by amit4g on Monday 28th of January 2008 05:27:22 AM
Old 01-28-2008
MySQL

[amit@venus]$ cat temp.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define MYVAR
MYVAR int main(void){
printf("success\n");
exit(EXIT_SUCCESS);
}

[amit@venus]$ gcc -o temp -S temp.c

[amit@venus]$ cat temp_wo_macro.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#define MYVAR
int main(void){ <===
printf("success\n");
exit(EXIT_SUCCESS);
}
[amit@venus]$ gcc -o temp_wo_macro -S temp_wo_macro.c
[amit@venus]$ diff temp temp_wo_macro
1c1
< .file "temp.c"
---
> .file "temp_wo_macro.c"

I really don't know, that why i didn't tried this small exercise before,
anyways as Bill pointed,it seems that it is perfectly legal to have a #defined variable left blank,
though if you try to access the same variable you need to assign it first.

here the code just gets expanded as "int main(void)"
They might have added this MACRO(NORET_TYPE) just to make sure that
nobody replaces ' void ' with anything else.


~amit
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help it works but its to SLOW

I am a novice at shell scripting. I have managed to cobble together a script that does exactly what I need it to do. However I am gathering information from 700+ devices. This script takes hours to complete the task. Is there a better way of doing it than what I have listed here? This script... (10 Replies)
Discussion started by: Garlandxj
10 Replies

2. UNIX for Dummies Questions & Answers

How ls | wc -l works?

ls displays files in tabbed output. Say a directory contains 3 files. ls will list all 3 in one line. So, I expect ls | wc -l to give 1, but it counts the nr of files and gives 3. Can someone explain how this works? (3 Replies)
Discussion started by: krishmaths
3 Replies

3. Shell Programming and Scripting

Still trying to get a grep -c that works

I am trying to get a count of each line sub runit2 { my ($file1a, $file2a) = @_; my $file1_vala = $file1a->get; my $file2_vala = $file2a->get; open (FILE1a, "$file1_vala") or die; open (FILE2a, "$file2_vala") or die; chomp(my @strings = <FILE2a>); while (1) { foreach $pattern... (4 Replies)
Discussion started by: popeye
4 Replies

4. Programming

how this works?

pls explain me how this works.... DECODE (SUBSTR (field, 1, 1),'''', '''''' || field || '''','''' || field || '''') here field is a column in an oracle table.... (7 Replies)
Discussion started by: vijay_0209
7 Replies

5. Solaris

how inode works

HI, Just another dummies questions: How i can determine what number of inode to use when creating filesystem? Thanks (4 Replies)
Discussion started by: lamoul
4 Replies

6. UNIX for Dummies Questions & Answers

>./a.pl works, >a.pl - does not

When I try to execute script, I get message: >aa.pl zsh: command not found: aa.pl but >./aa.pl works OK. What to change in environment to force the former way to work? Thank you, Alex Z (4 Replies)
Discussion started by: zzol
4 Replies

7. UNIX for Advanced & Expert Users

How this works?

I have a program............ #include<stdio.h> #include<unistd.h> main() { if(fork == 0) { printf("Hi every body:p!!!!!!!!!!"); } } This program works with out any error. here fork is not a system call. It just act as a variable.But how it works without declaring it? What data type it... (19 Replies)
Discussion started by: carolsanjeevi
19 Replies

8. Shell Programming and Scripting

[ask]how does sed -e 's/<[^>]*>//g' works?

I found this command, sed -e 's/<*>//g', will return the content of a line with pattern something like this, <tag1>content</tag1>.. How does this works? What does sed -e 's/<*>//g' actually do? What if I wanted to get content of a line with pattern something like this, content? thanks.. (5 Replies)
Discussion started by: 14th
5 Replies

9. Shell Programming and Scripting

How does a if works in shell

Hi, I need to compare and get an output for values greater than "X10" (values contain both characters and numbers) using if loop... FOR EG: I want to export values greater than X10, i.e., in-case if the value is X11 and greater than the "if" part to be executed if the value is X9 and... (2 Replies)
Discussion started by: shivashankar_S
2 Replies

10. Shell Programming and Scripting

How mailx -r works?

I'm using Sun Solaris. I used mailx -r "MyEmailId" -s "sub" "toEmailID" from my unix id and it worked. But when i run the same script from other's unix id it works as well. mean any one in my environment can mail to other's email without my knowledge. My questions are How it works and why it... (1 Reply)
Discussion started by: kg_gaurav
1 Replies
acl_check(3krb) 														   acl_check(3krb)

Name
       acl_check - Access control list (ACL) library routines.

Syntax
	cc <files> -lacl -l krb

	#include <krb.h>

	acl_canonicalize_principal (principal, buf)
	char	 *principal;
	char	 *buf;

	acl_check (acl_file, principal)
	char	  *acl_file;
	char	 *principal;

	acl_exact_match (acl_file, principal)
	char	 *acl_file;
	char	 *principal;

	acl_add (acl_file, principal)
	char	 *acl_file;
	char	 *principal;

	acl_delete (acl_file, principal)
	char	 *acl_file;
	char	 *principal;

	acl_initialize (acl_file, mode)
	char	 *acl_file;
	int	  mode;

	kname_parse (primary_name, instance_name,
			      realm_name, principal)
	char	 *primary_name;
	char	 *instance_name;
	char	 *realm_name;
	char	 *principal;

Arguments
       principal
		The name of a principal.  Principal names consist of from one to three fields.	The first field must be included because it stores
		the primary name of the principal.  The second field is not always required.  It begins with a period (.), and stores the instance
		name of the principal.	The third field is not always required.  It begins with an "at" sign (@), and stores the realm name of the
		principal.  The principal name format can be expressed as:
		name[.instance][@realm]
		For example, all of the names below are legitimate principal names:
		venus
		venus.root
		venus@dec.com
		venus.@dec.com
		venus.root@dec.com

       buf	Pointer to the buffer that stores the canonical form of a principal name.  The canonical form is derived from the form of a  prin-
		cipal  name.   Like  a principal name, it includes a primary name in its first field.  Unlike a principal name, it must include an
		instance name as its next field even if the instance name is blank.  Also, unlike a principal name, it must contain a realm field.
		If  a  canonical  name	is derived from a principal name that has no realm field, the local realm returned by is used as the realm
		field in the canonical name.  Of the above examples, only the last two are in canonical form.

       acl_file The path name of the file in which the access control list (ACL) is stored.

       mode	If the ACL file, acl_file, does not currently exist when is called, the file acl_file, is created with	read,  write,  and  access
		mode bits set equal to mode.

       primary_name
		The primary name portion of principal, returned by ANAME_SZ bytes of storage space must be allocated for primary_name.

       instance_name
		The instance name of principal, returned by INST_SZ bytes of storage space must be allocated for instance_name.

       realm_name
		The realm name of principal, returned by REALM_SZ bytes of storage space must be allocated for realm_name.

Description
       The routines of the library allow you to perform various administrative functions on an access control list (ACL). An ACL is a list of Ker-
       beros principals in which each principal is represented by a text string.  The routines of this library allow application programs to refer
       to named ACLs to test whether a principal is a member of an ACL, and to add or delete principals from the ACL file.

       The routines of the acl_check library are:

       acl_canonicalize_principal
	      Stores  the  canonical form of the principal name pointed to by principal in the buffer pointed to by buf.  This buffer must contain
	      enough space to store a full canonical principal name (MAX_PRINCIPAL_SIZE characters).  No meaningful value is returned by

       acl_check
	      Verifies that the principal name, principal, appears in the ACL file, acl_file.  This routine returns a zero(0)	if  the  principal
	      does not appear in the ACL, or if there is an error condition.  If the principal is a member of the ACL, a one(1) is returned.  The
	      acl_check routine always canonicalizes a principal before trying to find it in the ACL.  will determine if there is an ACL entry	in
	      the acl_file which exactly matches principal, principal, or if principal matches an ACL entry which contains a wildcard.	A wildcard
	      appears in place of a field name in an ACL entry and is represented as an asterisk (*).  A wildcard in a field name of an ACL  entry
	      allows  the ACL entry to match a principal name that contains anything in that particular field.	For example, if there is an entry,
	      in the ACL, the principals, and would be included in the ACL.  The use of wildcards is limited, for they may be  used  in  only  the
	      three following configurations in an ACL file:
	      name.*@realm
	      *.*@realm
	      *.*@*

       acl_exact_match
	      Verifies	that  principal name, principal, appears in the ACL file, This routine returns a zero(0) if the principal does not appear
	      in the ACL, or if any error occurs.  If the principal is a member of the ACL, returns a non-zero.  The routine does not canonicalize
	      a principal before the ACL checks are made, and it does not support wildcards.  Only an exact match is acceptable.  So, for example,
	      if there is an entry, in the ACL, only the principal would match the ACL entry.  This routine makes it easy to find ACL entries with
	      wildcards.

       acl_add
	      Adds  the principal name, principal, to the ACL file, acl_file.  This routine returns a zero(0) if it successfully adds the princi-
	      pal to the ACL.  Otherwise, if there was an internal error, or if the principal is already in the ACL, the routine  returns  a  non-
	      zero value.  The routine canonicalizes a principal, but treats wildcards literally.

       acl_delete
	      Deletes  the principal, principal, from the ACL file, acl_file.  The routine returns a zero(0) if it successfully deletes the prin-
	      cipal from the ACL.  Otherwise, if there was an internal error or if the principal is not in the ACL, the acl_delete routine returns
	      a non-zero value.  The routine canonicalizes a principal, but treats wildcards literally.

       acl_initialize
	      Initializes the ACL file, acl_file.  If the named acl_file does not exist, acl_initialize creates one with the permissions specified
	      by the mode argument.  If the ACL exists, acl_initialize removes all previously stored principal members of the list.  This  routine
	      returns a zero(0) if successful or a nonzero if it fails.

       kname_parse
	      parses the principal name, principal, and stores the primary name of the principal in principal_name, the instance name of the prin-
	      cipal in instance_name, and the realm name of the principal in realm_name.  returns KNAME_FMT if the principal name  is  incorrectly
	      formatted or if it is too long to be a principal name.  It returns KSUCCESS if the parsing of the principal name succeeded.

See Also
       kerberos(3krb), krb_get_lrealm(3krb)

																   acl_check(3krb)
All times are GMT -4. The time now is 12:36 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy