Dear Members,
I am using SCO-Unix 5.0.5. I have created 2 logical drives but some of the blocks are overlapped and are now giving warning during startup. I have used fsck to settle the problems but to no avail. Kindly help me to sort out the problem.
Thanks (3 Replies)
Hello,everyone here.
I'm coding with KSH to achieve exploring the disk space and judging whether it closes to overflow.But It seems that no one way to convert a string variable to integer.
df | read A B C D E F G H I J K L
print ${L}
Can I convert L to integer type?
Thanks for... (2 Replies)
Hi all,
It will be very useful If you spare some time with me for this worrying error.
I am calling a conversion program which is written in C++ for converting a file format to different format. It was working fine for this past 2 yrs. But now it is not working since the file size has been... (1 Reply)
Hi, I have the next doubt about of lost of characteristic of LV
in my original configuration
# lsvg -l ifxvg
ifxvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
aw64m_01 jfs 1 1 1 open/syncd N/A
aw64m_02 jfs 1... (1 Reply)
I'm getting the following Error:
prepare_pcap.c: In function `prepare_pkts':
prepare_pcap.c:127: error: dereferencing pointer to incomplete type
prepare_pcap.c:138: error: dereferencing pointer to incomplete type
====================================
This is the part of the relevant... (8 Replies)
I have this script to uvscan-update. Seems like that i am getting logical error at the end of the script. It is updating the script and also giving the error message to update it manually. I have deleted the DAT files to see if it will create new and it does. Below is the error and the script: ... (1 Reply)
Hello All,
I have a requirement to convert a 12 hour format to 24 hour time format and the sample input /out put is below
Input Time format : Nov 2 2011 12:16AM
Out Put Format : Nov 2 2011 0:16
Input : Nov 2 2011 4:16PM
Out Put: Nov 2 2011 16:16
I have done this using a... (6 Replies)
In the book "The C programming language"; second edition, chapter 2.7 there is a snippet which is supposed to:
"convert a string of digits into its numeric equivalent".
int atoi(char s)
{
int i, n;
n = 0;
for ( i = 0; s >= '0' && s <= '9'; ++i)
n = 10 * n + (s -... (4 Replies)
Hi All,
I am writing a simple script to read a file and display the lines with char count between 20 and 25. I am stuck with the if condition here. Tried a lot but still getting an error on the if condition
# if &&
if &&
My script is very simple as below, not able to understand... (7 Replies)
Discussion started by: nss280
7 Replies
LEARN ABOUT CENTOS
libtalloc_dts
libtalloc_dts(3) talloc libtalloc_dts(3)NAME
libtalloc_dts - Chapter 3: Dynamic type system
Dynamic type system
Generic programming in the C language is very difficult. There is no inheritance nor templates known from object oriented languages. There
is no dynamic type system. Therefore, generic programming in this language is usually done by type-casting a variable to void* and
transferring it through a generic function to a specialized callback as illustrated on the next listing.
void generic_function(callback_fn cb, void *pvt)
{
/* do some stuff and call the callback */
cb(pvt);
}
void specific_callback(void *pvt)
{
struct specific_struct *data;
data = (struct specific_struct*)pvt;
/* ... */
}
void specific_function()
{
struct specific_struct data;
generic_function(callback, &data);
}
Unfortunately, the type information is lost as a result of this type cast. The compiler cannot check the type during the compilation nor
are we able to do it at runtime. Providing an invalid data type to the callback will result in unexpected behaviour (not necessarily a
crash) of the application. This mistake is usually hard to detect because it is not the first thing which comes the mind.
As we already know, every talloc context contains a name. This name is available at any time and it can be used to determine the type of a
context even if we lose the type of a variable.
Although the name of the context can be set to any arbitrary string, the best way of using it to simulate the dynamic type system is to set
it directly to the type of the variable.
It is recommended to use one of talloc() and talloc_array() (or its variants) to create the context as they set its name to the name of the
given type automatically.
If we have a context with such as a name, we can use two similar functions that do both the type check and the type cast for us:
o talloc_get_type()
o talloc_get_type_abort()
Examples
The following example will show how generic programming with talloc is handled - if we provide invalid data to the callback, the program
will be aborted. This is a sufficient reaction for such an error in most applications.
void foo_callback(void *pvt)
{
struct foo *data = talloc_get_type_abort(pvt, struct foo);
/* ... */
}
int do_foo()
{
struct foo *data = talloc_zero(NULL, struct foo);
/* ... */
return generic_function(foo_callback, data);
}
But what if we are creating a service application that should be running for the uptime of a server, we may want to abort the application
during the development process (to make sure the error is not overlooked) and try to recover from the error in the customer release. This
can be achieved by creating a custom abort function with a conditional build.
void my_abort(const char *reason)
{
fprintf(stderr, "talloc abort: %s0, reason);
#ifdef ABORT_ON_TYPE_MISMATCH
abort();
#endif
}
The usage of talloc_get_type_abort() would be then:
talloc_set_abort_fn(my_abort);
TALLOC_CTX *ctx = talloc_new(NULL);
char *str = talloc_get_type_abort(ctx, char);
if (str == NULL) {
/* recovery code */
}
/* talloc abort: ../src/main.c:25: Type mismatch:
name[talloc_new: ../src/main.c:24] expected[char] */
Version 2.0 Tue Jun 17 2014 libtalloc_dts(3)