We're back with this month's edition of Go4Expert's Newsletter. We hope you enjoy it and pass on the word to your buddies. As always, we'd love to know what you would like to see in upcoming newsletters and we welcome you to submit your feedback.
Understanding C Function Pointers
Function pointers are pointers that can hold the address of a particular type of functions. These pointers, once initialized can be used to call the function whose address they are pointing to.
Declaring Function Pointer
A function pointer can be declared in following way :
Read more...
Importance of Branding in Marketing
Branding is a vital aspect of marketing strategies. Companies are trying hard to build a brand value that is sustainable over a longer period of time. A brand is a name or identity with which the customers can associate them with the company. A brand name will help the manufacturers and products to... Read more...
Unix Threads (Basics)
At times certain tasks need more time to execute and when multiple such tasks are desired then blocking on a single task is not a good practice. To Understand, Think of a program that provides some service but this service takes time to execute. Now, if you want this service again and again then... Read more...
Thread Synchronization using Mutex
Continuing the previous discussion that we did on Unix Threads (Basics), today we will discuss the concept of 'Thread Synchronization'. Going through a quick recap, we now know that threads are used to make calls to functions non-blocking... Read more...
Typecasting in C
Typecasting is simply a mechanism by which we can change the data type of a variable, no matter how it was originally defined. When a variable is typecasted into a different type, the compiler basically treats the variable as of the new data type.
Example
Lets go for a very simple example :
... Read more...
Buffer Overflow in C
The phenomenon of stuffing excessive data which is beyond the capacity of the allocated memory is known as buffer overflow. In Simple words we can say that for lets say 'n' bytes of memory, if we try to store any number of values which is greater than 'n', then the values beyond the nth value will... Read more...
Beginner's Guide to Apache Mod Rewrite Rules
This time I took a bit of a change from the usual subjects I write, not a big change though. The reason for writing this set of articles (More to come and there's another beginners one as well) is because I felt that there isn't a proper or complete guide written for the pure beginners to start... Read more...
Unix System Call Fork() (Create new Processes)
The fork() unix API provides mechanism to spawn a new process from an existing process. This function is called once in a program but it returns twice. Once in parent process and once in its child process(the new spawned process becomes the child process).The return value of this function in child... Read more...
VALGRIND Memory Leak Detection Tutorial
In a language like 'C', the programmer has almost complete control over memory operations but this brings in a problem that many of you might have faced : Memory errors. Although GDB can be used in many areas of these kind of problems but there are sometimes when programmer doesn't want to put too... Read more...
Unix Network Programming Tutorials - Socket Basics
You might have studied various mechanisms through which two processes interact on same host. For example message queues, shared memory etc. But what about interaction between two process running on two different hosts (lets say on a LAN or WAN). Here comes the concept of network programming where... Read more...
Loadable Kernel Modules (LKMs) in Linux
LKM stands for Loadable kernel modules. This term is mainly used in context with Linux OS. LKMs are independent modules that can be loaded and unloaded to and from kernel. This provides a mechanism through which the functionality of the kernel can be enhanced on run time, without having to... Read more...
Linux Makefiles (Basics)
To understand the concept of makefiles, one should have basic knowledge of the compilation process.
Do you know how to compile a code using gcc? For those who doesn't know, here is a quick description :
Here is a code of most simple 'C' program, hello1.c:
Code:
---------... Read more...
Understanding Linux Proc Filesystem
Proc file system is a pseuso-filesystem that contains the running state information of Linux kernel. This information is presented in the form of proc files. Every proc file represents some information about the current state of kernel. Now, since proc files represent the dynamic state of kernel so... Read more...
Programming with Linux proc files
As we have already discussed the procfile system in my previous article. Here we will learn about how to create a procfile which can be read and written to.
Since, proc files act as an interface between user space and kernel space, so creating, reading and writing a proc file will not be simple... Read more...
Difference Between Constant Pointers and Pointer to Constants
This article assumes that readers are aware of what pointers are and how they are used in 'C'. As a quick overview, A pointer is a special variable which holds the address of a variable of same type. For example :
Lets say there is a variable 'int a=10' so,a pointer to variable 'a' can be... Read more...
How to Write Functions That Accepts Variable Number of Arguments
We all have been using Functions since we stepped into programming. Numerous times we have called a function with some arguments to it. We all know that the basic declaration of a function is :
(
);
For example :
int func(int... Read more...
Dynamic Binding Through Virtual Functions in C++
A virtual function is used where we want to allow the derived class to replace the implementation of the same function in base class. The compiler always calls the derived class function when called with object of the derived class or an object of base class holding the address of the derived class... Read more...
Interesting Interview Questions For C Programmer
In this article, I'll present some interesting 'C' problems for which I will not provide the answer. If you are not bale to solve any problem, then just leave a comment here so that everybody is benefited when the problem is discussed.
Problems
1) Will the program execute without any problem?... Read more...
Byte Ordering Concept - Little Endian & Big Endian
Byte ordering in memory refers to the way in which the bytes corresponding to a certain value is stored in the memory. There are two ways in which bytes are stored in memory :
1. Big endian
2. Little endian
Lets understand them one by one :
*Big endian*
When high order byte or Most... Read more...
Unix/Linux Signal Handling
Signals are the interrupts. They are a way of providing asynchronous events. For example a user typing ctrl-c on terminal to stop a program. Most of the programs need to handle signals. Every signal has a name like SIGxxx. For example : SIGALRM is the alarm signal that is generated when the timer... Read more...
Obfuscating PHP
I must say that hiding or obfuscating is not the most effective ways of security but it's still effective to keep a Script Kiddy confused about what actually you are using in your server.
As an example - Server may use vulnerable version of PHP, with a public exploit released at some underground... Read more...
Shell in PHP - With Authentication Feature
Bind Shell as the name suggests is a piece of code , which is used to host a shell on a server or a victim machine ! Its basically used to control the host machine remotely!
In this tutorial we'll be making a Bind Shell in PHP with a authentication feature for extra protection.
The Code
... Read more...
Secure copy (SCP) Unix Networking Command
There are times, when sitting on your Linux box, working on a command line terminal, you suddenly feel a need of copying a file to/from a remote host. At this point you desire a command line utility that could do this task for you in just one line. Well, this is where 'scp' saves your day :-)
... Read more...
Impact of Signals on Unix/Linux System Calls
Suppose a system call was blocked due to some reason (like waiting for a read of some data on terminal) and during this time a signal occurs. Do you know what happens in this scenario?
In this article we will discuss the impact of signals on system calls.
System calls are different from... Read more...
Nonreentrant Functions
Before we start with Non re-entrant Functions, Can you guess the problem with this piece of code: Read more...
Basics of XSS or Cross Site Scripting Explained
Cross Site Scripting also known as XSS is a popular type of Client Site Attack, It is a type of attack which occurs in Web-Applications and allows an attacker to inject desired client-side scripts into Web-Pages viewed by others.
Types of XSS
This attack is mainly of 2 types
... Read more...
|
Community Stats
+ 1,044 New Members
+ 175 New Threads and Articles
+ 1,854 New Posts and comments
|
Subscribe via RSS
Get live updates in your web browser window.
|
Follow us on Twitter
Are you on Twitter? Follow us and get updated.
|
Find us on facebook
Share Go4Expert with your buddies on facebook.
|
Unsubscribe
If you no longer wish to receive this newsletter or want to edit your preferences you can do it here.
|
|