Need Suggestions

Ruben Safir ruben at mrbrklyn.com
Wed Aug 1 17:29:53 EDT 2018


> 
> And the K&R book on C does successive trimming of an strcpy(),
> and finishes with
> 
> void strcpy(char *a, *b) { while (*a++ = *b++); }
> 
> The thing that's actually used a lot in the Linux kernel that gives
> a lot of C newcomers heartburn is the widespread use of
> structures of function pointers.. For example, this from include/linux/fs.h:
> 
> struct lock_manager_operations {
> 	int (*lm_compare_owner)(struct file_lock *, struct file_lock *);
> 	unsigned long (*lm_owner_key)(struct file_lock *);
> 	fl_owner_t (*lm_get_owner)(fl_owner_t);
> 	void (*lm_put_owner)(fl_owner_t);
> 	void (*lm_notify)(struct file_lock *);	/* unblock callback */
> 	int (*lm_grant)(struct file_lock *, int);
> 	bool (*lm_break)(struct file_lock *);
> 	int (*lm_change)(struct file_lock *, int, struct list_head *);
> 	void (*lm_setup)(struct file_lock *, void **);
> };
> 
> That's the structure definition.  Novice challenge: Find one or more places
> where this structure is initialized, and understand how and why that works.


That kind of stuff is not taught in C programming.  An answer can be
very educating.




> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies


-- 
So many immigrant groups have swept through our town
that Brooklyn, like Atlantis, reaches mythological
proportions in the mind of the world - RI Safir 1998
http://www.mrbrklyn.com 

DRM is THEFT - We are the STAKEHOLDERS - RI Safir 2002
http://www.nylxs.com - Leadership Development in Free Software
http://www2.mrbrklyn.com/resources - Unpublished Archive 
http://www.coinhangout.com - coins!
http://www.brooklyn-living.com 

Being so tracked is for FARM ANIMALS and and extermination camps, 
but incompatible with living as a free human being. -RI Safir 2013




More information about the Kernelnewbies mailing list