I need to write a C program (not a C++ program) that allows some tasks to be preformed automatically from a menu-driven interface. Automate the following tasks:
1. Rename a file
2. Delete a file or a directory
3. Output Process Information
4. Execute “mode 644 ls -l”
5. Exit
I need to know what steps should I follow to achieve the result. is it possible to ask the user to enter all the names and commands in 1 line or I should ask him one by one.
thank you
open, creat, read, write, lseek and close
Are they all primitive?
:confused:
*Another Question: is there a different between a system call, and an i/o system call? (2 Replies)
Hi,
I'm new to UNIX system calls. Can someone share your knowledge as to how exactly system calls should be executed?
Can they be typed like commands such as mkdir on the terminal itself? Also, are there any websites which will show me an example of the output to expect when a system call like... (1 Reply)
Hello,
how would i be able to call ps in C programming?
thanks,
---------- Post updated at 01:39 AM ---------- Previous update was at 01:31 AM ----------
here's the complete system call, ps -o pid -p %d, getpit() (2 Replies)
Hi friends,
I have three questions.
1) What are system calls?
2) Is it necessary that system calls be in c language (in unix operating system)?
3) Importance of c language when programming in unix environment???
Looking forward to your wonderful replies!
... (2 Replies)
Hi friends,
I hope everyone is fine and doing well. I queried in my previous thread about the low-level qualities of C/C++ languages.I really thank you people for explaining, it was really helpful. One more ambiquity that I have in my mind is regarding the unix system calls like open, creat,... (1 Reply)
Discussion started by: gabam
1 Replies
LEARN ABOUT OSF1
memalloc_attr
memalloc_attr(3) Library Functions Manual memalloc_attr(3)NAME
memalloc_attr - Query the memory allocation policy and attributes (libnuma library)
SYNOPSIS
#include <numa.h>
int memalloc_attr(
vm_offset_t va, memalloc_attr_t *attr );
PARAMETERS
The user virtual address for which the memory allocation policy is requested. Points to a buffer to receive the memory allocation policy
and attributes for the page containing the specified virtual address.
DESCRIPTION
The memalloc_attr() function returns the current memory allocation policy and associated attributes in the buffer pointed to by attr for
the address specified by va.
If radset information about the memory allocation policy is desired, a radset must be allocated through the radsetcreate() function, and
the mattr_radset element of the attr argument must point to that radset. Otherwise, a 0 must be specified for the mattr_radset.
EXAMPLE
#include <numa.h> main() {
vm_offset_t va;
memalloc_attr_t attr;
int id;
int flags = SET_CURSOR_CONSUME;
rad_cursor_t cursor = SET_CURSOR_INIT;
radsetcreate(&attr.mattr_radset);
va = (vm_offset_t)&attr;
/* no policy in effect - return zeroes */
if (memalloc_attr(va, &attr) == -1) {
perror("memalloc_attr");
radsetdestroy(&attr.mattr_radset); return 0;
}
printf("mattr_policy = 0x%lx
", attr.mattr_policy);
printf("mattr_rad = 0x%lx
", attr.mattr_rad);
printf("mattr_stride = 0x%lx
", attr.mattr_stride);
printf("mattr_distance = 0x%lx
", attr.mattr_distance);
printf("mattr_pagesz = 0x%lx
", attr.mattr_pagesz);
/* set policy */
attr.mattr_policy = MPOL_DIRECTED;
attr.mattr_rad = 0;
if (nmadvise((void *)va, sizeof(memalloc_attr_t), 0, &attr) == -1) {
perror("nmadvise");
radsetdestroy(&attr.mattr_radset); return 0;
}
if (memalloc_attr(va, &attr) == -1) {
perror("memalloc_attr");
radsetdestroy(&attr.mattr_radset);
return 0;
}
printf("mattr_policy = 0x%lx
", attr.mattr_policy);
printf("mattr_rad = 0x%lx
", attr.mattr_rad);
printf("mattr_stride = 0x%lx
", attr.mattr_stride);
printf("mattr_distance = 0x%lx
", attr.mattr_distance);
printf("mattr_pagesz = 0x%lx
", attr.mattr_pagesz);
/* enumerate the mattr_radset */
printf("
Enumerating radset members:
");
while ((id = rad_foreach(attr.mattr_radset, flags, &cursor)) != RAD_NONE) {
if ((id % 8) == 0)
printf("
");
printf("%3d, ", id);
}
printf("
"); }
RETURN VALUES
Success. In this case, the function stores the requested memory allocation policy and attributes in the buffer pointed to by attr. If no
memory allocation policy has been set for the specified virtual address (e.g., madvise() or nmadvise()) not called for that address), a
zeroed attr structure is returned. Failure. In this case, the function sets errno to indicate the error.
ERRORS
If the memalloc_attr() function fails, it sets errno to one of the following values: The address pointed to by va, attr, or mattr_radset is
invalid. The mattr_radset element of the attr argument points to an invalid RAD set, possibly one that has not been created by a rad-
setcreate() call.
SEE ALSO
Functions: numa_intro(3)
Files: numa_types(4)memalloc_attr(3)