idisemptyset man page on DigitalUNIX

Printed from http://www.polarhome.com/service/man/?qf=idisemptyset&af=0&tf=2&of=DigitalUNIX

idsetops(3)							   idsetops(3)

NAME
       idsetops,  idaddset, idandset, idcopyset, idcountset, iddelset, iddiff‐
       set,  idemptyset,   idfillset,	idisemptyset,	idismember,   idorset,
       idsetcreate,  idsetdestroy,  idxorset  -	 Perform operations on ID sets
       (libc library)

SYNOPSIS
       #include <idset.h>

       int idaddset(
	       idset_t set,
	       idid_t member_id ); int idandset(
	       idset_t set_src1,
	       idset_t set_src2,
	       idset_t set_dst ); int idcopyset(
	       idset_t set_src,
	       idset_t set_dst ); int idcountset(
	       idset_t set ); int iddelset(
	       idset_t set,
	       idid_t member_id ); int iddiffset(
	       idset_t set_src1,
	       idset_t set_src2,
	       idset_t set_dst ); int idemptyset(
	       idset_t set ); int idfillset(
	       idset_t set ); int idisemptyset(
	       idset_t set ); int idismember(
	       idset_t set,
	       idid_t member_id ); int idorset(
	       idset_t set_src1,
	       idset_t set_src2,
	       idset_t set_dst ); int idsetcreate(
	       idset_t *set,
	       int max_id_val ); int idsetdestroy(
	       idset_t *set ); int idxorset(
	       idset_t set_src1,
	       idset_t set_src2,
	       idset_t set_dst );

PARAMETERS
       Specifies the largest member_id value.  Identifies a member  of	an  ID
       set.   Specifies	 or  points to an ID set.  Specifies an ID set that is
       being copied to or that is the result of a  logical  OR,	 XOR,  or  AND
       operation  on  two  other  ID  sets.   Specifies a ID set that is being
       copied to another ID set or that is part of a logical OR, XOR,  or  AND
       operation with another ID set.

DESCRIPTION
       The  ID set operation primitives manipulate sets of member IDs by oper‐
       ating on objects (of type idset_t) that are created  by	idsetcreate().
       Unlike  a CPU set or RAD set, whose members are CPU or RAD identifiers,
       an ID set is generic and can be created	for  any  type	of  identifier
       (process,  thread,  file, and so forth). The max_id_val argument speci‐
       fies the maximum value for any member_id, as appropriate for  the  type
       of identifier contained by the set.

       The  idsetcreate()  function  allocates,	 and  sets to empty, an ID set
       pointed to by set.

       The idsetdestroy() function releases the memory that  was  obtained  by
       idsetcreate() for the specified ID set pointed to by set.

       The  idcountset()  function returns the number of members in the ID set
       specified by set.

       The idemptyset() function initializes the ID set specified by set, such
       that no members are included in the set.

       The  idfillset() function initializes the ID set specified by set, such
       that all members that are currently configured in the  caller's	parti‐
       tion are included in the set.

       The  idismember() function tests whether the ID set member specified by
       the value of member_id is a member of the ID set specified by set.

       The idisemptyset() function tests whether the ID set specified  by  the
       set is empty.

       The idcopyset() function copies the contents of the ID set specified by
       set_src to the  ID set specified by set_dst.

       The idaddset() and iddelset() functions respectively add or delete  the
       members specified by the value of member_id to or from the ID set spec‐
       ified by set.

       The idandset(), idorset(), and idxorset() functions perform  a  logical
       AND,  OR,  or  XOR operation, respectively, on the ID sets specified by
       set_src1 and set_src2, storing the result in the ID  set	 specified  by
       set_dst.

       The  iddiffset()	 function  finds the logical difference between the ID
       sets specified by set_src1 and set_src2, storing the result in  the  ID
       set  specified  by  set_dst. (The result is made up of members that are
       included in set_src1 but not in

       set_src2.)

RETURN VALUES
       These functions return the following values: Success (returned  by  all
       functions).

	      For  idisemptyset() and idismember() only, 0 also means the con‐
	      dition being tested is false; that is, the specified ID  set  is
	      not  empty  or  does  not contain the specified member.  Success
	      (returned by idisemptyset() and idismember()only).  This	return
	      value  also  means  the condition being tested is true; that is,
	      the specified ID set is empty or contains the specified  member.
	      Failure  (returned by all functions). In this case, errno is set
	      to indicate the error.

ERRORS
       The  idaddset(),	 idandset(),  idcopyset(),  idcountset(),  iddelset(),
       iddiffset(),  idemptyset(),  idfillset(), idisemptyset(), idismember(),
       idorset(), and idxorset() functions set errno to	 the  following	 value
       for  the	 corresponding condition: The value of a set or set_* argument
       is invalid (possibly is not a ID set created by idsetcreate()).

       The idsetcreate() and idsetdestroy() functions set errno to one of  the
       the  following  values  for the corresponding condition: The address of
       the specified ID set is invalid.	 For  idsetcreate()  only,  no	memory
       could be allocated for the specified ID set.

       If  the	idaddset(),  iddelset(), and idismember() functions fail, they
       set errno to the following value for the reason specified: The value of
       member_id is an invalid or unsupported ID identifier.

EXAMPLES
       The following example demonstrates a variety of ID set operations. This
       program arbitrarily specifies INT_MAX for the idsetcreate()  function's
       max_id_val  argument.  INT_MAX is the largest value currently supported
       by the idid_t type and would result in a very large ID index structure.
       For  set operations on a specific type of ID, such as a process ID, you
       would specify the largest expected value for that type  of  identifier.
       Creating	 an index structure that can access larger ID values than will
       occur on the system wastes memory.

       #include <idset.h>

       int main() {
	       idset_t idset, idset2;

	       /* Create idsets - initialized as empty */
	       idsetcreate(&idset, INT_MAX);
	       idsetcreate(&idset2, INT_MAX);
	       /* demonstrate idset operations */

	       /* add id 0 to idset */
	       if (idaddset(idset, 0) == -1) {
		       perror("idaddset");
		       return 0;
	       }

	       /* copy idset to idset2 */
	       if (idcopyset(idset, idset2) == -1) {
		       perror("idcopyset");
		       return 0;
	       }

	       if (idaddset(idset, 1) == -1) {
		       /* add id 1 to idset */
		       perror("idaddset");
		       return 0;
	       }

	       /* difference of idset and idset2, store in idset */
	       if (iddiffset(idset, idset2, idset) == -1) {
		       perror("iddiffset");
		       return 0;
	       }

	       /* Enumerate idset. */
	       while (1) {
		       idid_t id;
		       int flags = SET_CURSOR_CONSUME;
		       id_cursor_t id_cursor = SET_CURSOR_INIT;

		       id = id_foreach(idset, flags, &id_cursor);

		       if (id == ID_NONE) {
			       printf("\n");
			       break;
		       } else {
			       printf("%3d ", id);
		       }
	       }

	       /* Destroy idset */
	       idsetdestroy(&idset);
	       idsetdestroy(&idset2);
	       return 0; }

SEE ALSO
       Functions: id_foreach(3)

								   idsetops(3)
[top]

List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net