āĻāĻāĻŋ āĻšāĻ˛ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_lca2010 āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻāĻžāĻ§āĻŋāĻ āĻŦāĻŋāĻ¨āĻžāĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻ¯āĻŧāĻžāĻ°ā§āĻāĻ¸ā§āĻā§āĻļāĻ¨ āĻ¯ā§āĻŽāĻ¨ āĻāĻŦā§āĻ¨ā§āĻā§ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨, āĻĢā§āĻĄā§āĻ°āĻž āĻ āĻ¨āĻ˛āĻžāĻāĻ¨, āĻāĻāĻ¨ā§āĻĄā§āĻ āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦāĻž MAC OS āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻāĻŽā§āĻ˛ā§āĻāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ OnWorks āĻĢā§āĻ°āĻŋ āĻšā§āĻ¸ā§āĻāĻŋāĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨āĻāĻžāĻ°ā§āĻ¤ā§ āĻāĻžāĻ˛āĻžāĻ¨ā§ āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻāĻžāĻ°ā§āĻ¯āĻā§āĻ°āĻŽ:
NAME āĻāĻ°
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_lca2010 - āĻā§āĻ¨ āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ: āĻ¯āĻāĻ¨ āĻĒāĻĄāĻŧāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻ¯āĻŧ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) āĻāĻ°
āĻŽāĻ¨āĨ¤
āĻĒā§āĻ°ā§āĻ°āĻŖāĻž
1980 āĻāĻ° āĻĻāĻļāĻā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ° āĻĻāĻŋāĻā§ āĻāĻŽāĻžāĻ° āĻāĻžāĻā§ libexplain āĻāĻ° āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻāĻ¸ā§āĨ¤ āĻ¯āĻāĻ¨āĻ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ āĻŋāĻ āĻāĻžāĻ¨ā§ āĻāĻŋ āĻā§āĻ˛ āĻšāĻ¯āĻŧā§āĻā§... āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻ¸āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°ā§
8 āĻŦāĻŋāĻā§āĻ° āĻāĻŽ āĻā§āĻ˛. āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻ¤āĻĨā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§, āĻāĻāĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻ¸ā§āĻā§ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻŋāĻ āĻā§ āĻāĻā§āĻā§ āĻ¤āĻž āĻŦā§āĻ° āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻāĻ¯āĻŧāĻž āĻāĻāĻŋāĻ¤
āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨, āĻāĻŦāĻ āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛āĻŋāĻāĻ¤ā§ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨āĨ¤
āĻāĻāĻž āĻ¯ā§ āĻ¸āĻšāĻ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§?
āĻā§āĻ˛ āĻŦāĻžāĻ°ā§āĻ¤āĻž as āĻāĻžāĻ¤ā§āĻ°āĻ¤āĻž
āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻ¸ā§āĻ "āĻāĻ āĻļāĻ¤āĻžāĻāĻļ" āĻāĻžāĻ āĻ¯āĻž āĻ¸āĻŽāĻ¯āĻŧāĻ¸ā§āĻā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦāĻžāĻĻ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ
āĻāĻžāĻĒ āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻāĻ˛ā§āĻĒ squeezes. āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§,
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻāĻŋāĻā§āĻāĻ¤āĻžāĻ° āĻ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻ¨ā§āĻ¨āĻ¤āĻŋ, āĻ¯āĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ¤āĻŋāĻāĻ° āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ
āĻ āĻāĻžāĻ¨āĻž āĻ āĻā§āĻāĻ˛ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧ āĻ¨āĻž. āĻāĻāĻŋ āĻā§āĻ¨ āĻ¸āĻšāĻ āĻāĻžāĻ āĻ¨āĻ¯āĻŧāĨ¤
āĻ˛āĻžāĻ°ā§āĻāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻ˛ā§āĻāĻ (āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻŋāĻ°ā§āĻā§āĻ˛) āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻā§āĻ¨āĻ¨āĻŋ
āĻāĻ āĻŽāĻ¤ āĻŦāĻžāĻ°ā§āĻ¤āĻž:
āĻāĻžāĻ¸āĻŽāĻžāĻ¨ āĻŦā§āĻ¯āĻ¤āĻŋāĻā§āĻ°āĻŽ (āĻā§āĻ° āĻĄāĻžāĻŽā§āĻĒāĻĄ)
āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ -āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻž āĻ¨āĻ¯āĻŧ
āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻŋāĻ¨āĻŋāĻ¸ āĻā§āĻ˛āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻāĻ¤ āĻāĻ¨ āĻāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ¨ āĻ¯ā§āĻŽāĻ¨:
$ ./āĻŽā§āĻ°ā§āĻ
āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
$
āĻāĻ āĻŽā§āĻšā§āĻ°ā§āĻ¤ā§ āĻāĻāĻāĻ¨ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻŋ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§:
1.
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻŦāĻžāĻāĻžāĻ° āĻāĻžāĻ˛āĻžāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨, āĻ¯ā§āĻŽāĻ¨ āĻāĻŋāĻĄāĻŋāĻŦāĻŋ(1), āĻŦāĻž
2.
āĻ¤ā§āĻŽāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ° āĻ¸ā§āĻā§āĻ°ā§āĻ¸(āĻāĻā§āĻ¸āĻāĻ¨āĻāĻŽāĻāĻā§āĻ¸) āĻŦāĻž āĻāĻāĻāĻŋ(1) āĻāĻŋāĻ¤āĻ°ā§ āĻ¤āĻžāĻāĻžāĻ¨āĨ¤
āĻŽāĻ¨ā§ āĻ°āĻžāĻāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ āĻ¸āĻ°āĻā§āĻāĻžāĻŽāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§ āĻā§āĻĄāĻŧā§ āĻĻāĻŋāĻ¨
āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§āĨ¤ (āĻāĻ°āĻĒāĻ° āĻĨā§āĻā§ āĻ āĻ¨ā§āĻ āĻĻāĻŋāĻ¨ āĻšāĻ¯āĻŧā§ āĻā§āĻā§ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻļāĻŋāĻā§āĻˇāĻžāĻ¨āĻŦāĻŋāĻ¸ āĻŽāĻžāĻ¨ā§ "āĻļā§āĻ§ā§ āĻ˛āĻŋāĻā§āĻā§āĻ¨ āĻāĻ
āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ°".)
āĻāĻ āĻāĻĻāĻžāĻšāĻ°āĻŖā§, āĻ¤āĻŦā§, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¸(1) āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§
$ āĻ¸ā§āĻā§āĻ°ā§āĻ¸ -e āĻā§āĻ°ā§āĻ¸=āĻā§āĻ˛āĻž ./āĻŽā§āĻ°ā§āĻ
open("some/file", O_RDONLY) = -1 ENOENT (āĻāĻŽāĻ¨ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ)
āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
$
āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻ¤ā§āĻ˛āĻ¨āĻžāĻ¯āĻŧ āĻ¯āĻĨā§āĻˇā§āĻ āĻŦā§āĻļāĻŋ āĻ¤āĻĨā§āĻ¯āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤,
āĻŦā§āĻāĻž āĻ¸ā§āĻ°ā§āĻ¸ āĻā§āĻĄ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ
int fd = open("āĻāĻŋāĻā§/āĻāĻŋāĻā§", O_RDONLY);
āĻ¯āĻĻāĻŋ (fd <0)
{
fprintf(stderr, "āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻāĻŋ āĻ¨āĻž\n");
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯ā§ āĻĢāĻžāĻāĻ˛, āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻŦāĻ˛āĻ¤ā§āĻ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ āĻ¯ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ. āĻĢāĻžāĻāĻ˛ āĻāĻŋāĻ˛
āĻāĻŽāĻ¨āĻāĻŋ āĻ¸ā§āĻāĻžāĻ¨ā§? āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŋāĻ˛? āĻāĻāĻŋ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋāĻ˛
āĻĢāĻžāĻāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¯ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻĻā§āĻ°ā§āĻāĻāĻ¨āĻž āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻŋāĻ˛.
āĻāĻĒāĻ¨āĻžāĻ° āĻā§āĻ˛ā§ āĻ¸ā§āĻāĻŋāĻāĻāĻŋ āĻ§āĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻ˛āĻžāĻ°ā§āĻāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻā§ āĻŽāĻžāĻ°āĻ¤ā§ āĻ¯āĻžāĻ¨āĨ¤ āĻ¤āĻžāĻ° āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻŦāĻ˛ā§āĻ¨ āĻā§āĻ˛(3).
āĻĒāĻ°ā§āĻ° āĻŦāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨:
$ ./āĻŽā§āĻ°ā§āĻ
open: āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
$
āĻ āĻā§āĻ°āĻāĻ¤āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¯āĻž āĻāĻļāĻž āĻāĻ°āĻŋ āĻ¤āĻž āĻ¨āĻ¯āĻŧāĨ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻšāĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¤āĻžāĻā§ āĻŦāĻ˛ā§āĻ¨ āĻ¨āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŋ āĻāĻŋāĻ˛? āĻā§āĻ¸ā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻŋāĻ¯āĻŧā§ āĻāĻŽāĻ°āĻž āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ
int fd = open("āĻāĻŋāĻā§/āĻāĻŋāĻā§", O_RDONLY);
āĻ¯āĻĻāĻŋ (fd <0)
{
pererror("āĻā§āĻ˛āĻž");
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻā§āĻ˛ā§ āĻ¸ā§āĻāĻŋāĻ āĻĻāĻŋāĻ¯āĻŧā§ āĻāĻ°ā§āĻāĻāĻŋ āĻĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧāĨ¤ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧ, āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻ āĻ§āĻžāĻĒ āĻ˛āĻžāĻā§
āĻāĻāĻŋāĻ¯āĻŧā§ āĻāĻŦāĻ āĻāĻ āĻ§āĻžāĻĒ āĻĒāĻŋāĻāĻ¨ā§:
$ ./āĻŽā§āĻ°ā§āĻ
āĻāĻŋāĻā§/āĻāĻŋāĻā§: āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
$
āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻŋ āĻ¯ā§ āĻĢāĻžāĻāĻ˛āĻāĻŋ āĻā§āĻ˛āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻ° āĻāĻžāĻ¨āĻžāĻ¨ā§ āĻšāĻ¯āĻŧ āĻ¨āĻž āĻ¯ā§ āĻāĻāĻŋ āĻāĻŋāĻ˛ āĻā§āĻ˛āĻž(2)
āĻ¯ā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§. āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻ¤āĻžā§āĻĒāĻ°ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻ¨āĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻžā§āĻĒāĻ°ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛āĨ¤ āĻāĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°āĻ¤ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨(2) āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§, āĻāĻāĻāĻŋ āĻ āĻĒāĻžāĻ°ā§āĻļāĻ¨ āĻ¯āĻž āĻŦā§āĻāĻžāĻ¯āĻŧ
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤
const char * āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ = "āĻāĻŋāĻā§/āĻāĻŋāĻā§";
int fd = open(āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, O_RDONLY);
āĻ¯āĻĻāĻŋ (fd <0)
{
pererror(āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ);
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻāĻĒāĻ°ā§āĻ° āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤ āĻ¨āĻ¨-āĻ˛āĻžāĻ°ā§āĻāĻž āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯āĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ āĻ¸āĻŽāĻ¯āĻŧ
āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŽāĻžāĻĻā§āĻ° padawan āĻļāĻŋāĻā§āĻˇāĻžāĻ°ā§āĻĨā§ āĻŦāĻ˛āĻ¤ā§ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛āĨ¤
$ ./āĻŽā§āĻ°ā§āĻ
āĻā§āĻ˛āĻž āĻāĻŋāĻā§/āĻāĻŋāĻā§: āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
$
āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ¤āĻĨā§āĻ¯āĻā§ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§āĨ¤ āĻā§āĻĄāĻāĻŋ āĻĻā§āĻā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§
āĻāĻ:
const char * āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ = "āĻāĻŋāĻā§/āĻāĻŋāĻā§";
int fd = open(āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, O_RDONLY);
āĻ¯āĻĻāĻŋ (fd <0)
{
fprintf(stderr, "āĻāĻĒā§āĻ¨ %s: %s\n", āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, strerror(errno));
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻāĻāĻ¨ āĻāĻŽāĻžāĻĻā§āĻ° āĻāĻžāĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛, āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻāĻ°āĻ° āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻā§āĨ¤ āĻāĻ āĻ¸āĻŦ āĻ°āĻ¯āĻŧā§āĻā§
āĻ¤āĻĨā§āĻ¯ āĻ¯ā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¸(1) āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤āĨ¤ āĻ¯ā§ āĻāĻāĻŋ āĻĒāĻžāĻ¯āĻŧ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻžāĻ˛.
āĻ āĻĨāĻŦāĻž āĻāĻāĻž?
āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž of āĻā§āĻ˛ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°
1980 āĻāĻ° āĻĻāĻļāĻā§ āĻ˛ā§āĻāĻ āĻ¯ā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻĻā§āĻā§āĻāĻŋāĻ˛ā§āĻ¨ āĻ¤āĻž āĻšāĻ˛ āĻ¯ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĨ¤
"āĻāĻŽāĻ¨ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ" āĻāĻŋ "āĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ āĻ¨āĻž?āĻāĻŋāĻā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻŦāĻž "āĻāĻŋāĻ¨āĻŋāĻ¸â āĻĢāĻžāĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻĻā§āĻ¯ "āĻāĻŋāĻā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ?
āĻāĻ¨ā§āĻ¯ āĻŽā§āĻ¯āĻžāĻ¨ āĻĒā§āĻ āĻ āĻāĻāĻāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻā§āĻšāĻžāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) āĻŦāĻ˛āĻā§:
strerror - āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻŽā§āĻŦāĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°ā§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻ¸ā§āĻā§āĻ°āĻŋāĻ
āĻāĻžāĻ˛āĻāĻžāĻŦā§ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨: āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻā§ āĻ¸āĻāĻā§āĻ¯āĻž, āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻ¯āĻŧāĨ¤
āĻ āĻ¨ā§āĻ¯āĻĻāĻŋāĻā§, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻžāĻ¨ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŋ āĻāĻŋāĻ˛. āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻŋāĻ˛
āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻā§āĻĄ, āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ° āĻāĻžāĻ°āĻŖā§ āĻ¸ā§āĻˇā§āĻ, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻā§āĻĄ āĻļāĻžāĻāĻžāĻ¯ā§āĻā§āĻ¤ āĻāĻŦāĻ "āĻ¨āĻž" āĻŦāĻ˛ā§āĨ¤
āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§-āĻ¸ā§āĻĒā§āĻ¸ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻļāĻ°ā§āĻ¤āĻāĻŋ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ˛āĻŋāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻžāĻ°ā§āĻ¤āĻž?
āĻ¯āĻžāĻāĻšā§āĻ, āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻ°āĻ āĻāĻā§āĻ°ā§ āĻ¯āĻžāĻ¯āĻŧāĨ¤ āĻ¸āĻŽāĻ¯āĻŧ āĻšāĻ˛ā§ āĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ¯āĻŧ āĻĒāĻĄāĻŧāĻž(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ
āĻāĻ˛, āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻā§āĻ˛āĻž(2) āĻāĻ˛? āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻŋ āĻ¸āĻšāĻ
āĻā§āĻ˛āĻž(2) āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§, āĻāĻāĻŋ āĻ āĻŋāĻ āĻ¸ā§āĻāĻžāĻ¨ā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§āĻ¨
āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¤ā§ āĻĒāĻĄāĻŧāĻž(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛, āĻāĻĒāĻ¨āĻžāĻā§ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻ¨āĻŋāĻā§āĻ° āĻĒāĻĨ, āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĨ¤
āĻāĻŦāĻ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŦāĻŋāĻ āĻ¯āĻž grates: āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻžāĻ¨ā§ āĻ¯ā§ āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ° āĻ¨āĻžāĻŽ āĻāĻŋ
āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻā§āĻ¤āĨ¤ āĻā§āĻ¨ āĻāĻāĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻā§ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻĄā§āĻāĻž āĻĒāĻžāĻ¸ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¨āĻŋāĻā§āĻ° āĻāĻĒāĻžāĻ¯āĻŧ āĻļā§āĻ§ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¯āĻž āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§ āĻ¨āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻ¤ā§? āĻāĻŋāĻ¤āĻ°ā§
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻ¤āĻž, āĻ āĻ¨ā§āĻ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻāĻ°ā§ āĻ¨āĻž, āĻāĻŦāĻ āĻāĻ° āĻĢāĻ˛ā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻāĻ°āĻ āĻāĻžāĻ°āĻžāĻĒ
āĻāĻāĻž.
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻāĻŋāĻ˛ 1980-āĻāĻ° āĻĻāĻļāĻ, āĻāĻāĻāĻŋ PDP11-āĻ, āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻŦāĻ āĻā§āĻ¨āĻ āĻāĻžāĻ āĻāĻ°āĻž āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻŋāĻ˛ āĻ¨āĻžāĨ¤ āĻĒā§āĻāĻ¨ā§
āĻ¤āĻžāĻ°āĻĒāĻ°, āĻāĻāĻ¨āĻŋāĻā§āĻ¸ā§āĻ° āĻā§āĻ¨ āĻ¸ā§āĻŦāĻžāĻĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž / proc āĻāĻŽāĻ¨āĻāĻŋ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻāĻāĻžāĻ°ā§, āĻāĻŦāĻ lsof(1) āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ
āĻāĻ āĻĻāĻļāĻā§āĻ°āĻ āĻŦā§āĻļāĻŋ āĻĻā§āĻ°ā§ āĻāĻŋāĻ˛āĨ¤ āĻ¤āĻžāĻ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸ā§āĻĨāĻāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛āĨ¤
āĻāĻā§āĻāĻ¤āĻž āĻ āĻ¨āĻ¨ā§āĻ¤ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž
āĻāĻ˛ā§āĻĒāĻ¨āĻž āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ āĻ¸ā§āĻŽ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĨ¤ āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻā§āĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻ˛ā§ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻāĻ¨āĻ āĻ¨āĻž
āĻāĻŋāĻ°āĻāĻžāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻĨāĻž āĻŦāĻ˛āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ°āĻ āĻā§āĻ¨, āĻāĻāĻ¨ā§ āĻŽāĻžāĻ¨ā§āĻˇā§āĻ° āĻāĻžāĻāĻ¯āĻŧāĻž-āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻ§āĻžāĻ°āĻž āĻ āĻŦā§āĻ¯āĻžāĻšāĻ¤ āĻāĻā§
āĻāĻĒāĻ¨āĻŋ, āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻā§āĻ°ā§, āĻāĻ°ā§āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦā§āĻāĻžāĻ¤ā§?
āĻ āĻĻā§āĻā§āĻ¤āĻāĻžāĻŦā§, 25 āĻŦāĻāĻ° āĻĒāĻ°ā§, āĻāĻāĻāĻŋ āĻ¸āĻšāĻ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸āĻ¤ā§āĻ¤ā§āĻŦā§āĻ, āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤
āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻ¤āĻž, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻāĻ¨āĻ "āĻāĻŽāĻ¨ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ" āĻā§āĻāĻžāĻŦā§ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻŦā§āĻ¨ āĻ¤āĻžāĻ° āĻā§āĻ¨āĻ āĻ§āĻžāĻ°āĻŖāĻž āĻ¨ā§āĻ,
āĻ āĻĨāĻŦāĻž āĻ āĻ¨ā§āĻ¯ āĻā§āĻ¨ āĻ°āĻšāĻ¸ā§āĻ¯āĻāĻ¨āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤āĻžāĻ°āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻĻāĻŋāĻ¨ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ¯āĻŧāĨ¤ āĻ āĻĨāĻŦāĻž, āĻ āĻ¨ā§āĻ¤āĻ¤, āĻā§āĻĒāĻ¨ā§āĻ¯āĻŧ
āĻ¤āĻžāĻĻā§āĻ°.
āĻĒā§āĻ°āĻĨāĻŽ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĒāĻžāĻ ā§āĻĻā§āĻ§āĻžāĻ° āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨āĻž āĻšāĻ˛ā§ āĻāĻāĻŋ āĻāĻŋ āĻāĻžāĻ˛ āĻšāĻŦā§ āĻ¨āĻž?
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻ˛ āĻ¨āĻž āĻāĻ°ā§ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĨāĻžāĻāĻ˛ā§ āĻāĻžāĻ˛ āĻšāĻŦā§ āĻ¨āĻž
āĻāĻžāĻ°āĻŋāĻāĻ°āĻŋ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž?
āĻāĻ āĻĻāĻŋāĻ¨āĻā§āĻ˛āĻŋ / proc āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ
āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻāĻŦāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻŽāĻžāĻ¨āĻŋāĻ āĻāĻžāĻ°āĻŖ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻŋāĻ¤ āĻ¸āĻā§āĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ / proc āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻĻ lsof(1) āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ āĻ¨ā§āĻ āĻĢāĻžāĻāĻāĨ¤
2008 āĻ¸āĻžāĻ˛ā§, āĻ āĻ¨ā§āĻŦāĻžāĻĻā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻĒā§āĻ°āĻŦāĻžāĻš āĻ˛ā§āĻāĻā§āĻ° āĻāĻžāĻā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻāĻā§āĻāĻŋāĻ˛āĨ¤ āĻāĻšāĻž āĻāĻŋāĻ˛
25 āĻŦāĻāĻ°ā§āĻ° āĻĒā§āĻ°āĻžāĻ¨ā§ āĻ§āĻžāĻ°āĻŖāĻžāĻāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻāĻŦāĻ libexplain āĻāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĨ¤
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻĻā§āĻ¯ āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦāĨ¤ āĻāĻ° āĻāĻāĻāĻŋ āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻāĻ°āĻž āĻ¯āĻžāĻ
āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3)
āĻ¯āĻĻāĻŋ (āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ (āĻĒā§āĻ°āĻžāĻ¤āĻ¨_āĻĒāĻĨ, āĻ¨āĻ¤ā§āĻ¨_āĻĒāĻĨ) < 0)
{
fprintf(stderr, "%s %s āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ āĻāĻ°ā§āĻ¨: %s\n", old_path, new_path,
strerror(errno));
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
libexplain āĻāĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻ˛ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻ¤ā§āĻ˛ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛,
āĻ¸ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ¤ā§ āĻāĻāĻŋ āĻāĻ°āĻ āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻāĻĒāĻ¨āĻŋ āĻŦāĻŋāĻāĻžāĻā§āĻ° "āĻ¤ā§āĻ°ā§āĻāĻŋ" āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§āĻ° āĻ āĻ§ā§āĻ¨ā§ āĻ¯ā§ āĻ¤āĻĨā§āĻ¯ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻā§āĻā§āĻ¨ āĻ¤āĻžāĻ° āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
2 āĻāĻŦāĻ 3 āĻāĻ āĻĒā§āĻˇā§āĻ āĻžāĻā§āĻ˛āĻŋ, āĻĒā§āĻ°āĻā§āĻ¤ āĻ āĻŦāĻ¸ā§āĻĨāĻž, āĻĒā§āĻ°āĻā§āĻ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¤āĻĨā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ
āĻŽāĻžāĻ¨, āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŽāĻžāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻšāĻ āĻā§āĻ¸
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨:
āĻ¯āĻĻāĻŋ (āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ (āĻĒā§āĻ°āĻžāĻ¤āĻ¨_āĻĒāĻĨ, āĻ¨āĻ¤ā§āĻ¨_āĻĒāĻĨ) < 0)
{
fprintf(stderr, "%s\n", āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ(āĻĒā§āĻ°āĻžāĻ¨ā§_āĻĒāĻĨ, āĻ¨āĻ¤ā§āĻ¨_āĻĒāĻĨ));
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻāĻ°āĻ¨ā§ āĻā§āĻ¸
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸ā§āĻĒāĻˇā§āĻ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻā§āĻ˛(3) āĻŽāĻžāĻ¨, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻŋāĻā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻ°āĻŖ āĻ¯ā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻšāĻŦā§ āĻā§āĻ˛, āĻ¯ā§āĻŽāĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒā§āĻ¨āĻ°ā§āĻĻā§āĻ§āĻžāĻ°:
āĻ¯āĻĻāĻŋ (āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°ā§āĻ¨(āĻĒā§āĻ°āĻžāĻ¤āĻ¨_āĻĒāĻĨ, āĻ¨āĻ¤ā§āĻ¨_āĻĒāĻĨ < 0))
{
int old_errno = errno;
...āĻā§āĻĄ āĻ¯ā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻāĻ°ā§ āĻā§āĻ˛...
fprintf(stderr, "%s\n", āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_errno_rename(old_errno,
āĻĒā§āĻ°āĻžāĻ¨ā§_āĻĒāĻĨ, āĻ¨āĻ¤ā§āĻ¨_āĻĒāĻĨ));
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(ā§¨ā§Ļā§§ā§§);
}
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻŽāĻžāĻ˛ā§āĻāĻŋ āĻĨā§āĻ°ā§āĻĄ āĻŽāĻžāĻŽāĻ˛āĻž
āĻāĻŋāĻā§ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ āĻŦāĻšā§-āĻĨā§āĻ°ā§āĻĄā§āĻĄ, āĻāĻŦāĻ āĻāĻāĻāĻžāĻŦā§ libexplain āĻāĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ āĻāĻžāĻ āĻāĻ°āĻ¤ā§ āĻ āĻā§āĻˇāĻŽ
āĻŦāĻžāĻĢāĻžāĻ° āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻŦāĻžāĻĢāĻžāĻ° āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻ¯āĻĻāĻŋ (āĻāĻ¨āĻ˛āĻŋāĻā§āĻ(āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ))
{
char āĻŦāĻžāĻ°ā§āĻ¤āĻž[3000];
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻŦāĻžāĻ°ā§āĻ¤āĻž_āĻāĻ¨āĻ˛āĻŋāĻā§āĻ(āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻāĻāĻžāĻ°(āĻŦāĻžāĻ°ā§āĻ¤āĻž), āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ);
error_dialog(āĻŦāĻžāĻ°ā§āĻ¤āĻž);
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ -1;
}
āĻāĻŦāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ¤āĻž āĻāĻ¨ā§āĻ¯, āĻāĻāĻ¯āĻŧ āĻā§āĻ˛(3) āĻāĻŦāĻ āĻĨā§āĻ°ā§āĻĄ-āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ:
ssize_t nbytes = read(fd, data, sizeof(data));
āĻ¯āĻĻāĻŋ (nbytes <0)
{
char āĻŦāĻžāĻ°ā§āĻ¤āĻž[3000];
int old_errno = errno;
...āĻā§āĻ˛ āĻāĻ°ā§āĻā§āĻ¯...
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻŦāĻžāĻ°ā§āĻ¤āĻž_āĻāĻ°āĻ¨ā§_āĻ°āĻŋāĻĄ(āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻāĻāĻžāĻ°(āĻŦāĻžāĻ°ā§āĻ¤āĻž),
old_erno, fd, data, sizeof(data));
error_dialog(āĻŦāĻžāĻ°ā§āĻ¤āĻž);
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ -1;
}
āĻāĻ āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻšāĻ¯āĻŧ strerror_r(3), āĻāĻāĻŋ āĻāĻā§ āĻāĻŽāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĨ¤
āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻŋāĻ¨āĻŋ
āĻ¸ā§āĻŦāĻŋāĻ§āĻžāĻāĻ¨āĻ āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻ, āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ°āĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ°ā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ, āĻ˛ā§āĻāĻā§āĻ° āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ libexplain āĻĢāĻžāĻāĻļāĻ¨ āĻšāĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§
āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ:
int fd = āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ_āĻ āĻ°_āĻĄāĻžāĻ(āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, 0666);
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§ āĻāĻŦāĻ
EXIT_FAILURE āĻĻāĻŋāĻ¯āĻŧā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻž āĻĨāĻžāĻā§, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻĢāĻžāĻāĻļāĻ¨:
int fd = āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ_āĻ āĻ¨_āĻāĻ°āĻ° (āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ, 0666);
āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋ āĻŽā§āĻĻā§āĻ°āĻŖ āĻāĻ°āĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻŽā§āĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻĢāĻ˛āĻžāĻĢāĻ˛āĻ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻŦā§, āĻāĻŦāĻ
āĻā§āĻ˛(3) unmolested, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ.
āĻ¸āĻŦ āĻĻā§āĻ¯ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻāĻ˛
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§
#āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĻ¨āĻžāĻŽ.h>
āĻ¯ā§āĻāĻŋ āĻāĻ¯āĻŧāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§:
¡ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž_āĻ¨āĻžāĻŽ,
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ¨āĻžāĻŽ,
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻŦāĻžāĻ°ā§āĻ¤āĻž_āĻ¨āĻžāĻŽ,
¡ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻŦāĻžāĻ°ā§āĻ¤āĻž_āĻāĻ°āĻ¨ā§_āĻ¨āĻžāĻŽ,
¡ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž_āĻ¨āĻžāĻŽ_āĻŦāĻž_āĻŽāĻ°āĻŋ āĻāĻŦāĻ
¡ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž_āĻ¨āĻžāĻŽ_āĻ āĻ¨_āĻ¤ā§āĻ°ā§āĻāĻŋāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨, āĻāĻŦāĻ āĻāĻ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻā§ is āĻ¨āĻž āĻāĻŋāĻ¨āĻ¤āĻžāĻ
āĻ¯āĻāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻĢāĻžāĻāĻ˛ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ āĻĒā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° (āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§ā§āĻĻā§āĻ°) āĻāĻŋāĻā§ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻ°ā§āĻĒ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻžāĻā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻšāĻ¤ā§ āĻ¯āĻž EXIT_SUCCESS āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ(3) āĻāĻŦāĻ āĻŦāĻ¨ā§āĻ§(3) āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻāĻžāĻ˛āĨ¤
āĻāĻāĻžāĻ°ā§āĻā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ°āĻ¯āĻŧā§āĻā§ 221āĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻŦāĻ 547āĻāĻŋ ioctl āĻ āĻ¨ā§āĻ°ā§āĻ§āĨ¤ āĻāĻ°ā§ āĻ āĻ¨ā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻā§
āĻāĻ˛ āĻāĻāĻ¨āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻž. āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻ¯ā§ āĻĢāĻŋāĻ°ā§ āĻ¨āĻž, āĻ¯ā§āĻŽāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨(2), āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ¨ā§āĻ
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ¤ā§, āĻāĻŦāĻ āĻāĻāĻ¨āĻ āĻšāĻŦā§ āĻ¨āĻžāĨ¤ āĻĻā§āĻ¯ Exec āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĒāĻ°āĻŋāĻŦāĻžāĻ° āĻšāĻ¯āĻŧ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤, āĻāĻžāĻ°āĻŖ
āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšāĻ˛ā§ āĻ¤āĻžāĻ°āĻž āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĨ¤
āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛
āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻŋāĻ āĻ¸āĻš āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻŽāĻžāĻ¨āĻŽā§āĻ˛āĻ "āĻŦāĻŋāĻĄāĻŧāĻžāĻ˛" āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻĻā§āĻāĻ¤ā§ āĻāĻāĻŋāĻ° āĻŽāĻ¤ā§ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§,
libexplain āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤
#āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
# āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
#āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
āĻāĻāĻāĻŋ libexplain āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻā§, āĻĒā§āĻ˛āĻžāĻ¸ āĻ¸ā§āĻŦāĻžāĻāĻžāĻŦāĻŋāĻ āĻ¸āĻ¨ā§āĻĻā§āĻšāĻāĻžāĻāĻ¨. (āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ āĻāĻŽāĻžāĻ¤ā§ āĻāĻžāĻ¨
āĻĒā§āĻ°āĻŋāĻĒā§āĻ°āĻ¸ā§āĻ¸āĻ° āĻ˛ā§āĻĄ, āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨āĻ¨āĻžāĻŽ.h> āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤āĨ¤)
āĻ¸ā§āĻĨāĻŋāĻ° āĻļā§āĻ¨ā§āĻ¯
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž (āĻĢāĻžāĻāĻ˛ *āĻāĻĢāĻĒāĻŋ)
{
āĻāĻ¨ā§āĻ¯ (;;)
{
āĻāĻžāĻ° āĻŦāĻžāĻĢāĻžāĻ° [4096];
size_t n = āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_fread_or_die(āĻŦāĻžāĻĢāĻžāĻ°, 1, sizeof(āĻŦāĻžāĻĢāĻžāĻ°), fp);
āĻ¯āĻĻāĻŋ (! n)
āĻŦāĻŋāĻ°āĻ¤āĻŋ;
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§āĻ¨_fwrite_or_die(āĻŦāĻžāĻĢāĻžāĻ°, 1, n, stdout);
}
}
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĢāĻžāĻāĻļāĻ¨ āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻāĻāĻĒā§āĻā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸ā§āĻā§āĻ°āĻŋāĻŽ āĻāĻĒāĻŋ āĻāĻ°ā§āĨ¤ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻāĻ¤ā§ āĻšāĻŦā§
āĻĒāĻĄāĻŧāĻž āĻŦāĻž āĻ˛ā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (āĻāĻŦāĻ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽāĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻŦā§
āĻ¤ā§āĻ°ā§āĻāĻŋ) āĻāĻŦāĻ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ EXIT_FAILURE āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻāĻ°ā§āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŽāĻ¨āĻāĻŋ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻāĻŋāĻ¨ā§āĻ¤āĻž āĻ¨āĻž
pathnames, āĻ āĻĨāĻŦāĻž āĻāĻ˛ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻ¨āĻŋāĻā§ āĻ¤āĻžāĻĻā§āĻ° āĻĒāĻžāĻ¸.
āĻā§āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char **argv)
{
āĻāĻ¨ā§āĻ¯ (;;)
{
int c = getopt(argc, argv, "o:");
āĻ¯āĻĻāĻŋ (c == EOF)
āĻŦāĻŋāĻ°āĻ¤āĻŋ;
āĻ¸ā§āĻāĻ (āĻ)
{
āĻā§āĻ¸ 'āĻ':
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻĢā§āĻ°āĻŋāĻāĻĒā§āĻ¨_āĻ āĻ°_āĻĄāĻžāĻ(āĻ āĻĒāĻāĻžāĻ°ā§āĻ, "āĻĄāĻŦā§āĻ˛āĻŋāĻ", stdout);
āĻŦāĻŋāĻ°āĻ¤āĻŋ;
āĻāĻ āĻā§āĻĄā§āĻ° āĻŽāĻāĻžāĻ° āĻ āĻāĻļ āĻšāĻ˛ libexplain āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§āĻĻā§āĻ§ āĻĻā§āĻ¯ āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŽāĻ¨ āĻāĻŋ
āĻ¯āĻĻāĻŋ āĻ¤ā§āĻŽāĻŋ āĻ¨āĻž āĻāĻāĻžāĻ¨ā§ āĻ¯ā§āĻŽāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ stdout āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻā§āĻ˛ā§āĻ¨āĨ¤ āĻāĻŽāĻ°āĻž āĻāĻŋāĻ¨ā§āĻ¤āĻžāĻ āĻāĻ°āĻŋ āĻ¨āĻž
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻ°ā§āĻ¯āĻžāĻāĻŋāĻāĨ¤
āĻĄāĻŋāĻĢāĻ˛ā§āĻ:
fprintf(stderr, "āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°: %ss [ -o ] ...\n",
argv[0]);
āĻĢā§āĻ°āĻ¤ EXIT_FAILURE;
}
}
āĻ¯āĻĻāĻŋ (āĻ āĻĒāĻāĻŋāĻ¨ā§āĻĄ == argc)
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž(stdin);
āĻāĻ°
{
āĻ¯āĻāĻ¨ (āĻ āĻĒāĻāĻŋāĻ¨ā§āĻĄ < argc)
{
āĻĢāĻžāĻāĻ˛ *fp = āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻĢā§āĻĒā§āĻ¨_āĻ āĻ°_āĻĄāĻŋ(āĻāĻ°ā§āĻāĻāĻŋ[āĻ āĻĒāĻāĻŋāĻ¨ā§āĻĄ]++, "āĻāĻ°");
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž(fp);
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_fclose_or_die(fp);
}
}
āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻāĻāĻĒā§āĻ āĻĒāĻ°ā§āĻā§āĻˇāĻāĻžāĻŦā§ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻšāĻŦā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻšāĻ¤ā§ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°āĻŋ āĻšāĻŦā§
āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻžāĻ¨ā§ āĻ¤āĻž āĻāĻ°āĻŋ, āĻ¯āĻĻāĻŋ āĻŦāĻžāĻĢāĻžāĻ° āĻāĻ°āĻž I/O āĻāĻāĻ¨āĻ āĻāĻŋāĻā§ āĻ¨āĻž āĻ˛āĻŋāĻā§ āĻĨāĻžāĻā§, āĻāĻŦāĻ
āĻāĻāĻāĻŋ ENOSPC āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻž āĻāĻŋāĻā§ āĻāĻā§āĨ¤
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻĢā§āĻ˛āĻžāĻļ_āĻ āĻ°_āĻĄāĻžāĻ(stdout);
āĻĢā§āĻ°āĻ¤ EXIT_SUCCESS;
}
āĻāĻāĻžāĻ¨ā§āĻ āĻļā§āĻˇ. āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻŋāĻ, āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻā§āĻĄ.
āĻŽāĻ°āĻŋāĻāĻž āĻāĻ° āĻ¸ā§āĻā§āĻ˛ of āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻ§āĻžāĻ°ā§āĻŽāĻŋāĻāĻ¤āĻž
āĻāĻĒāĻ¨āĻžāĻ°āĻž āĻ¯āĻžāĻ°āĻž āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¨āĻ¨ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻ°āĻžāĻ¸ā§āĻāĻŋ āĻ°āĻžāĻ¸ā§āĻ˛ā§āĻ° "āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŽāĻŋ āĻāĻāĻŋāĻā§ āĻ āĻĒāĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨ āĻāĻ°āĻŋ?"
API āĻĄāĻŋāĻāĻžāĻāĻ¨āĻžāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻˇā§āĻ āĻžāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻĒāĻĄāĻŧāĻž āĻāĻāĻŋāĻ¤āĨ¤
http://ozlabs.org/~rusty/index.cgi/tech/2008â03-30.html
10. āĻāĻāĻž āĻ āĻ¸āĻŽā§āĻāĻŦ āĻĨā§āĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻā§āĻ˛āĨ¤
āĻ˛āĻā§āĻˇā§āĻ¯āĻā§āĻ˛āĻŋ āĻāĻā§āĻ, āĻāĻā§āĻāĻžāĻāĻŋāĻ˛āĻžāĻˇā§āĻāĻžāĻŦā§ āĻāĻā§āĻ āĻ¸ā§āĻ āĻāĻ°āĻž āĻĻāĻ°āĻāĻžāĻ°, āĻĒāĻžāĻā§ āĻāĻĒāĻ¨āĻŋ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻŽāĻ¨ā§ āĻāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻā§āĻ¨
āĻāĻĒāĻ¨āĻŋ āĻ¨āĻž āĻ¯āĻāĻ¨ āĻļā§āĻˇ.
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻāĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°ā§,
āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§āĻ āĻ¸ā§āĻāĻĢāĻ˛ā§āĻ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻšāĻ¤ā§ āĻĄāĻŋāĻāĻžāĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§. āĻāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻšāĻŦā§
āĻāĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĒā§āĻ°āĻāĻžāĻļ.
āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻŦāĻĄāĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻ˛ āĻĒā§āĻ°āĻā§āĻ¤ āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽ āĻ¨āĻŋāĻā§āĻ°āĻžāĻāĨ¤ āĻāĻžāĻ°āĻŖ āĻ¸āĻŋ āĻ¨ā§āĻ
āĻ¨āĻžāĻŽ-āĻ¸ā§āĻĒā§āĻ¸, libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_ āĻ¨āĻžāĻŽ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĨ¤ āĻāĻ āĻšāĻ˛
āĻĒā§āĻ°āĻ¤ā§āĻ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻĻā§āĻŽ-āĻ¨āĻžāĻŽ-āĻ¸ā§āĻĒā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧāĨ¤
āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻ° āĻĢāĻ˛ā§ āĻāĻŋāĻā§ āĻ āĻĒā§āĻ°āĻžāĻā§āĻ¤-āĻļāĻŦā§āĻĻāĻ¯ā§āĻā§āĻ¤ āĻ¨āĻžāĻŽ āĻšāĻ¯āĻŧāĨ¤
9. āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻāĻāĻ˛āĻ¨āĻāĻžāĻ°ā§ or linker āĻ¨āĻž āĻāĻ°āĻŦā§ āĻ¨āĻž āĻĻāĻŋāĻ¨ āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž it āĻā§āĻ˛āĨ¤
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻā§āĻ˛ āĻšāĻ˛ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻāĻĒā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻāĻĒā§āĻ¨_āĻ āĻ°_āĻĄāĻžāĻ āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ āĻāĻŋāĻ˛āĨ¤
āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻļāĻ¤, āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻāĻāĻāĻŋ āĻāĻžāĻāĻĒ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻ°āĻŋ āĻāĻ°āĻŦā§ (āĻ¯ā§āĻŽāĻ¨ āĻŦāĻ°āĻžāĻĻā§āĻĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
const char * rvalue āĻĨā§āĻā§ āĻāĻāĻāĻŋ int lvalue)āĨ¤
8. āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻāĻāĻ˛āĻ¨āĻāĻžāĻ°ā§ āĻāĻā§āĻāĻž āĻ¸āĻ¤āĻ°ā§āĻ if āĻāĻĒāĻ¨āĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž it āĻā§āĻ˛āĨ¤
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽ_āĻ āĻ°_āĻĄāĻžāĻ āĻāĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¯āĻĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻ°āĻŋāĻ¨ā§āĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¯ āĻāĻžāĻ°āĻŖ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž GCC āĻāĻ° āĻāĻāĻāĻŋ āĻĻāĻ°āĻāĻžāĻ°ā§ warn_unused_result āĻĢāĻžāĻāĻļāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ āĻāĻŦāĻ libexplain āĻāĻā§
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻāĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§_āĻ¨āĻžāĻŽ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻ¤āĻ°ā§āĻāĻ¤āĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻāĻ˛ āĻ¯āĻāĻ¨ āĻāĻĒāĻ¨āĻŋ
āĻāĻ āĻā§āĻ˛ āĻāĻ°āĻž āĻ¸āĻā§āĻā§ āĻāĻ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻŋāĻ¸āĻŋāĻ¸āĻŋ -āĻā§āĻ˛ āĻāĻāĻŋāĻā§ āĻ˛ā§āĻā§āĻ˛ 9 āĻ¨ā§āĻāĻŋāĻ¤ā§ āĻāĻ¨ā§āĻ¨ā§āĻ¤ āĻāĻ°āĻ¤ā§āĨ¤
7. āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸ā§āĻ¸ā§āĻĒāĻˇā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° is (āĻ¸āĻŽā§āĻāĻŦāĻ¤) āĻĻā§āĻ¯ āĻ āĻŋāĻ āĻāĻ.
āĻĢāĻžāĻāĻļāĻ¨ā§āĻ° āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋ āĻ¤āĻžāĻĻā§āĻ° āĻ āĻ°ā§āĻĨ āĻŦā§āĻāĻžāĻ¤ā§ āĻŦā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¨āĻ¯āĻŧ
āĻ¸āĻĢāĻ˛ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ_āĻ¨āĻžāĻŽ_āĻŦāĻž_āĻŽāĻ°āĻŋ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§āĻ¨_āĻ¨āĻžāĻŽ_āĻ āĻ¨_āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽā§āĻāĻžāĻŽā§āĻāĻŋ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻŽā§āĻ˛āĻ,
āĻāĻŽ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻž āĻāĻ āĻŋāĻ¨āĨ¤ āĻĢāĻžāĻāĻļāĻ¨ āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯
āĻŦā§āĻāĻžāĻ° āĻĻāĻŋāĻā§ āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ°, āĻāĻŦāĻ āĻšā§āĻĄāĻžāĻ° āĻĢāĻžāĻāĻ˛ā§āĻ° āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°ā§
āĻŦā§āĻāĻžāĻ° āĻĻāĻŋāĻā§āĨ¤
6. āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ āĻŦāĻ˛ā§ āĻāĻĒāĻ¨āĻŋ āĻāĻŋāĻāĻžāĻŦā§ āĻĨā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻāĻž.
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻĒāĻĄāĻŧāĻž āĻŦāĻŋāĻļā§āĻˇāĻāĻžāĻŦā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ_āĻ¨āĻžāĻŽ"āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°ā§āĻ¨" āĻšāĻŋāĻ¸āĻžāĻŦā§ _or_dieāĻ¨āĻžāĻŽ āĻ āĻĨāĻŦāĻž āĻŽāĻ°)".
āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_ āĻ¨āĻžāĻŽ-āĻ¸ā§āĻĒā§āĻ¸ āĻāĻĒāĻ¸āĻ°ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻŋāĻā§ āĻĻā§āĻ°ā§āĻāĻžāĻā§āĻ¯āĻāĻ¨āĻ āĻĒāĻžāĻ°ā§āĻļā§āĻŦ-āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻā§
āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻž āĻŦāĻŋāĻāĻžāĻ, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋāĨ¤
āĻ¨āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻļāĻŦā§āĻĻā§āĻ° āĻā§āĻ°āĻŽāĻ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻā§āĻ°āĻŽ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§āĨ¤ āĻ¯ā§āĻā§āĻ¤āĻŋ
āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻļā§āĻˇ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§ āĻĒāĻžāĻ¸ āĻāĻ°āĻž āĻāĻāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻš; āĻ¸āĻŦ of āĻ¤āĻžāĻšāĻžāĻĻāĻŋāĻāĻā§āĨ¤ āĻ¯āĻĻāĻŋ
_errno_ āĻ¨āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻā§ āĻĨāĻžāĻā§āĨ¤ āĻ¯āĻĻāĻŋ
_message_ āĻ¨āĻžāĻŽā§āĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻāĻ° āĻĻā§āĻāĻŋ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ¸ā§āĨ¤
5. Do it āĻ āĻ§āĻŋāĻāĻžāĻ° or it āĻāĻā§āĻāĻž āĻŦāĻŋāĻ°āĻ¤āĻŋ at āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻāĻžāĻ¸ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻ āĻāĻžāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĒā§āĻ¯āĻžāĻ°āĻžāĻŽāĻŋāĻāĻžāĻ° āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°ā§,
āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§āĻ āĻ¸ā§āĻāĻĢāĻ˛ā§āĻ āĻāĻĄāĻŧāĻžāĻ¤ā§ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻž āĻāĻāĻŋāĻ¤
āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻ°āĻ¤āĻŋ āĻāĻ°āĻŦā§āĻ¨ āĻ¨āĻž, āĻ¤āĻŦā§ āĻāĻ°āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ-āĻŦāĻŋāĻļā§āĻŦ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ¨āĻŋāĻāĻ¸āĻ¨ā§āĻĻā§āĻšā§ āĻāĻāĻŋāĻā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻŦā§āĨ¤
āĻāĻŋāĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻļā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§
āĻŦāĻžāĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ā§ āĻ¸āĻšāĻžāĻ¯āĻŧāĻ¤āĻž āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻ¤ "āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽā§ āĻŦāĻŋāĻ°āĻ¤āĻŋ" āĻšāĻŋāĻ¸āĻžāĻŦā§ "āĻ¤āĻĨā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž"
āĻ°āĻžāĻ¨āĻāĻžāĻāĻŽ" (āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻŦāĻžāĻ°āĻĢā§āĻ° āĻĒāĻ°ā§)āĨ¤
4. āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻšāĻŦā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž it āĻ āĻŋāĻ āĻāĻā§āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ C āĻāĻ° āĻ¨āĻžāĻŽ-āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§āĻ, āĻ¤āĻžāĻ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_ āĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§
āĻāĻĒāĻ¸āĻ°ā§āĻ āĻāĻāĻŋ āĻāĻĄāĻŧāĻžāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻāĻĻā§āĻŽ-āĻ¨āĻžāĻŽ-āĻ¸ā§āĻĒā§āĻ¸ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻāĻ¤ āĻāĻĒāĻžāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¤ā§āĻ āĻĻā§āĻŦāĻ¨ā§āĻĻā§āĻŦāĨ¤
āĻ¸āĻŽāĻ¸ā§āĻ¤ libexplain āĻāĻ˛ā§āĻ° āĻā§āĻ°ā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻĒ
āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻā§āĻ¨āĨ¤ āĻāĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻžāĻĻā§āĻļā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŽāĻā§āĻāĻ¸ā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻ¸āĻŽā§āĻŽā§āĻ˛āĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ā§āĻ° āĻāĻĻā§āĻĻā§āĻļā§āĻ¯ā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻ˛.
3. āĻĒāĻĄāĻŧāĻž āĻĻā§āĻ¯ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻšāĻŦā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž it āĻ āĻŋāĻ āĻāĻā§āĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻĒā§āĻ°āĻ¤ā§āĻ¯ā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻĄāĻā§āĻ¸āĻŋāĻā§āĻ¨ āĻĄāĻā§āĻŽā§āĻ¨ā§āĻā§āĻļāĻ¨ āĻĨāĻžāĻāĻž
āĻ¸āĻ°ā§āĻŦāĻāĻ¨ā§āĻ¨ API āĻāĻ˛ (āĻāĻŦāĻ āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖāĻāĻžāĻŦā§āĻ)āĨ¤
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§
libexplain-āĻ āĻāĻžāĻ āĻāĻ°āĻž āĻ āĻ¨ā§āĻāĻāĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻĄāĻŧāĻŋāĻ° āĻ¨āĻŋāĻā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ¨ā§āĻ° āĻŽāĻ¤ā§
āĻŽā§āĻāĻžāĻ¨āĻŋāĻ āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ¤ā§āĻ¤ā§āĻ˛āĻ¨. āĻ¸ā§āĻāĻžāĻ¨ā§ āĻ¨āĻŋāĻā§ āĻāĻŋāĻā§ āĻā§ā§āĻ¸āĻŋāĻ¤ āĻāĻŋāĻ¨āĻŋāĻ¸ āĻāĻā§, āĻĒā§āĻ˛āĻžāĻ¸ āĻāĻžāĻĻāĻž āĻāĻŦāĻ āĻāĻžāĻāĻāĻž, āĻāĻŦāĻ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻā§āĻŦ āĻāĻŽāĻ āĻāĻāĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻ¨āĨ¤ āĻāĻāĻāĻŋ āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¤āĻĨā§āĻ¯āĻĒā§āĻ°ā§āĻŖ āĻšāĻ¤ā§ āĻšāĻŦā§, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻžāĻ°āĻž
āĻ¸ā§āĻāĻžāĻā§āĻ¯āĻŦāĻžāĻ¨ āĻ¯ā§ āĻā§āĻŦ āĻāĻ¨ āĻāĻ¨ āĻ¨ā§āĻā§āĻ° āĻĻāĻŋāĻā§ āĻ¤āĻžāĻāĻžāĻ¤ā§ āĻšāĻ¯āĻŧāĻ¨āĻŋ, āĻāĻŦāĻ āĻāĻāĻžāĻĄāĻŧāĻžāĻ
āĻĢā§āĻ¨ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻļā§āĻ¨āĻž āĻŽā§āĻāĻžāĻ¨āĻŋāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤āĻĨā§āĻ¯āĻĒā§āĻ°ā§āĻŖāĨ¤ āĻāĻ
āĻā§āĻ¨ āĻ¸āĻšāĻ āĻāĻžāĻāĨ¤
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ¨āĻ°ā§āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§, āĻā§āĻĄāĻāĻŋ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŦā§ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ libexplain āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§:
int fd = āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻāĻĒā§āĻ¨_āĻ āĻ°_āĻĄāĻžāĻ("some/thing", O_RDONLY, 0);
āĻāĻ āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻŦā§
open(pathname = "some/file", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ°āĻāĻŽ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
(2, ENOENT) āĻāĻžāĻ°āĻŖ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ "āĻāĻŋāĻā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
āĻāĻāĻŋ āĻ¤āĻŋāĻ¨ āĻā§āĻāĻ°ā§ āĻšāĻ¯āĻŧā§ āĻ¯āĻžāĻ¯āĻŧ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻāĻ˛ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻ°āĻŖ
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
āĻ¸āĻžāĻŽāĻ¨ā§ āĻāĻžāĻ°āĻŖ
"āĻāĻžāĻ°āĻŖ" āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻĨā§āĻā§ āĻ -āĻāĻ° āĻāĻā§ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻāĻŋāĻ° āĻ āĻāĻļāĻāĻŋ āĻĻā§āĻāĻž āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻāĻ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽāĻāĻŋ āĻŽā§āĻĻā§āĻ°āĻŖā§āĻ° āĻĢāĻ˛ā§ āĻ¨āĻŋāĻā§āĻ āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻļā§āĻ°ā§āĨ¤ āĻāĻŦāĻ āĻāĻāĻž āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¸(1) āĻāĻāĻāĻĒā§āĻ, āĻŦā§āĻ¨āĻžāĻ¸ geek āĻāĻ¨ā§āĻ¯
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ.
open(pathname = "some/file", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ°āĻāĻŽ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
(2, ENOENT)
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻāĻ āĻ āĻāĻļāĻāĻŋ āĻŦāĻŋāĻāĻžāĻļāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯ āĻ¯āĻāĻ¨ āĻ¤āĻŋāĻ¨āĻŋ āĻā§āĻĄāĻāĻŋ āĻ˛āĻŋāĻāĻā§āĻ¨,
āĻāĻŦāĻ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻāĻžāĻ°ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻžāĻ¨āĻāĻžāĻŦā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¯āĻžāĻā§ āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§ āĻāĻŦāĻ āĻŦāĻžāĻāĻā§āĻ˛āĻŋ āĻ āĻŋāĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻā§āĻĄ āĻāĻāĻž āĻ āĻŋāĻ āĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§ āĻŦāĻ˛ā§.
āĻ¯āĻĻāĻŋ āĻāĻ āĻĒāĻžāĻ ā§āĻ¯āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻā§ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻŋ āĻāĻĒāĻŋ-āĻĒā§āĻ¸ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž
āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ, āĻāĻŦāĻ āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻā§ āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻ°āĻā§āĻˇāĻŖāĻžāĻŦā§āĻā§āĻˇāĻŖāĻāĻžāĻ°ā§ āĻāĻ¸āĻ˛ā§ āĻā§ āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻāĻžāĻ¨āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
āĻā§āĻ˛āĨ¤
āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻļāĻ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻ°ā§āĻŽā§āĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦā§ āĻ¸ā§āĻā§āĻ°ā§āĻ¸(āĻāĻā§āĻ¸āĻāĻ¨āĻāĻŽāĻāĻā§āĻ¸) āĻŦāĻž āĻāĻāĻāĻŋ(1) āĻāĻ āĻ¸āĻ āĻŋāĻ āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ¤ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§
āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻāĻ āĻĒāĻĨ āĻā§āĻ˛āĻž āĻĨāĻžāĻā§ āĻ¨āĻžāĨ¤ āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ āĻ¨ā§āĻ āĻĻā§āĻ°ā§
āĻĻā§āĻ°ā§, āĻāĻŦāĻ, āĻāĻāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤, āĻāĻāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ āĻ°āĻžāĻā§āĻ¯ā§āĨ¤ āĻ¸ā§āĻ¤āĻ°āĻžāĻ, āĻāĻ āĻ¤āĻĨā§āĻ¯ āĻĨāĻžāĻāĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨
āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ, āĻ¯āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§āĨ¤
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦāĻžāĻāĻŋ āĻĒā§āĻ°āĻ¸āĻā§āĻ āĻĻā§āĻ¯āĻŧ. āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§
āĻĻā§āĻāĻž āĻĻā§āĻ¯āĻŧ, āĻāĻĒāĻ¤ā§āĻ¤āĻŋāĻāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
"āĻāĻžāĻ°āĻŖ" āĻāĻ° āĻĒāĻ°ā§āĨ¤ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖāĻ°ā§āĻĒā§ āĻāĻĻā§āĻ§ā§āĻ¤ āĻāĻŦāĻ āĻ¸āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻ¸ā§āĻā§āĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻ
āĻāĻŽā§āĻŦā§āĻĄ āĻāĻ°āĻž āĻ¨āĻ¤ā§āĻ¨ āĻ˛āĻžāĻāĻ¨ āĻāĻŦāĻ āĻ -āĻŽā§āĻĻā§āĻ°āĻŖ āĻ āĻā§āĻˇāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻāĻžāĻ°ā§āĻŽāĻŋāĻ¨āĻžāĻ˛āĻā§ āĻ¯ā§āĻ¤ā§ āĻĻā§āĻŦā§ āĻ¨āĻž
āĻāĻĄāĻŧāĻā§āĻā§
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¯āĻž āĻĨā§āĻā§ āĻŦā§āĻ°āĻŋāĻ¯āĻŧā§ āĻāĻ¸ā§ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(2), āĻĒā§āĻ˛āĻžāĻ¸ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŋāĻšā§āĻ¨āĨ¤ āĻ āĻ§ā§āĻ°ā§āĻ¯ āĻāĻŦāĻ
āĻŦāĻŋāĻļā§āĻˇāĻā§āĻ sysadmins āĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§ āĻĒāĻĄāĻŧāĻž āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ˛ā§āĻāĻā§āĻ° āĻāĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻ āĻāĻŋāĻā§āĻāĻ¤āĻž
āĻ¯ā§ āĻāĻ°āĻ āĻĒāĻĄāĻŧāĻž āĻĢāĻ˛āĻĒā§āĻ°āĻ¸ā§ āĻšāĻ¯āĻŧ. (āĻ¯āĻĻāĻŋ āĻāĻāĻŋ āĻĢāĻ˛āĻĒā§āĻ°āĻ¸ā§ āĻ¨āĻž āĻšāĻ¯āĻŧ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻ° āĻāĻāĻāĻŋ āĻāĻ˛āĻžāĻāĻž
libexplain āĻ¯ā§ āĻāĻ¨ā§āĻ¨āĻ¤ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§. āĻā§āĻĄ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻŦāĻžāĻāĻ¤ āĻāĻžāĻ¨āĻžāĻāĨ¤)
āĻĒāĻ° āĻāĻžāĻ°āĻŖ
āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻ āĻāĻļ āĻ¯āĻž āĻ -āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĨ¤ āĻāĻ° āĻŦāĻžāĻāĻ°ā§āĻ āĻĻā§āĻāĻžāĻ¯āĻŧ
āĻ¸āĻšāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ, āĻāĻŦāĻ āĻāĻ°ā§ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻŋāĻā§ āĻāĻ¨ā§āĻ¯ āĻĻā§āĻāĻžāĻ¯āĻŧ.
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻā§āĻ¨ "āĻāĻŋāĻā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
āĻāĻ āĻ āĻāĻļāĻāĻŋ āĻ¸āĻ°āĻ˛ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻŽāĻžāĻ˛ āĻāĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ
āĻāĻāĻžāĻ¨ā§ āĻāĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ¤āĻŋāĻā§āĻāĻ°āĻŖ āĻ āĻĒāĻ°āĻŋāĻšāĻžāĻ°ā§āĻ¯āĨ¤
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻāĻžāĻŦā§, āĻ¨ā§āĻ¤āĻŋ āĻšāĻ˛ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¤āĻĨā§āĻ¯ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž, āĻ¯āĻžāĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§
āĻāĻāĻŋ āĻā§āĻāĻāĻ¤ā§ āĻ¯ā§āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž (āĻāĻŦāĻ āĻŦāĻžāĻ āĻ°āĻŋāĻĒā§āĻ°ā§āĻā§āĻ° āĻŦāĻžāĻāĻ°ā§ āĻāĻāĻŋ āĻā§āĻĄāĻŧā§ āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻž)āĨ¤
āĻāĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ¤āĻŋāĻā§āĻāĻ°āĻŖ
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻāĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ¤āĻŋāĻā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻ¸ā§āĻāĻžāĻ¨ā§
āĻāĻāĻ¨āĻ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤ āĻā§āĻ¨ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧāĻāĻ°āĻŖ āĻ¨ā§āĻ, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻžāĻ° āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻžāĻˇāĻžāĻ¯āĻŧ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻžāĻ¨,
āĻ āĻ¨ā§āĻā§āĻ°āĻš āĻāĻ°ā§ āĻ āĻŦāĻĻāĻžāĻ¨ āĻ°āĻžāĻā§āĻ¨āĨ¤
āĻāĻĒāĻ°ā§āĻ° "āĻ āĻ§āĻŋāĻāĻžāĻāĻļ" āĻā§āĻ¯āĻŧāĻžāĻ˛āĻŋāĻĢāĻžāĻ¯āĻŧāĻžāĻ°āĻāĻŋ āĻāĻ āĻ¸āĻ¤ā§āĻ¯ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻŋāĻ¤ āĻ¯ā§ āĻ§āĻžāĻ°āĻŖāĻžāĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖ
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ¨ā§āĻ¤āĻ°ā§āĻāĻžāĻ¤āĻŋāĻā§āĻāĻ°āĻŖ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¨āĻž. āĻā§āĻĄ āĻŦā§āĻ¸ āĻšāĻā§āĻā§
āĻā§āĻ°āĻŽāĻžāĻ¨ā§āĻŦāĻ¯āĻŧā§ āĻ¸āĻāĻļā§āĻ§āĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ°āĻŋāĻĢā§āĻ¯āĻžāĻā§āĻāĻ°āĻŋāĻ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻĢāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ
āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻĄā§ āĻ āĻŋāĻ āĻāĻāĻŦāĻžāĻ° āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻ¯ā§ āĻāĻžāĻˇāĻžāĻā§āĻ˛āĻŋāĻ° āĻ āĻāĻļāĻā§āĻ˛āĻŋāĻā§ āĻāĻāĻ¤ā§āĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¸ā§āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ā§ˇ
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻāĻ˛ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻā§āĻ˛ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¸āĻ āĻŋāĻ āĻŦā§āĻ¯āĻžāĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻā§āĻ°āĻŽā§āĨ¤
āĻĒā§āĻ¸ā§āĻāĻŽāĻ°ā§āĻā§āĻŽ
āĻāĻŽāĻ¨ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽ āĻāĻāĻ¨āĻ libexplain āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž āĻāĻŦāĻ āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž āĻ¸ā§āĻā§āĻ°ā§āĻ¸(1)
āĻšāĻ¯āĻŧ āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž(1) libexplain āĻ¸āĻš āĻāĻŽāĻžāĻ¨ā§āĻĄ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻ¯āĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĄāĻŋāĻ¸āĻŋāĻĢāĻžāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž, āĻ¯āĻĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻž āĻā§āĻŦ āĻŦā§āĻļāĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻ¨āĻž āĻšāĻ¯āĻŧāĨ¤
$ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž āĻ¨āĻžāĻŽāĻžāĻ¨ā§āĻ¤āĻ° foo āĻŦāĻŋāĻ¨ā§āĻ¯āĻžāĻ¸ /tmp/bar/baz -e ENOENT
āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ(oldpath = "foo", newpath = "/tmp/bar/baz") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ°āĻāĻŽ āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
(2, ENOENT) āĻāĻžāĻ°āĻŖ āĻ¨āĻ¤ā§āĻ¨āĻĒāĻĨā§ "āĻŦāĻžāĻ°" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ"/ tmp -āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
$
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¨āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĒāĻĨā§āĻ° āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻž āĻā§āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¤āĻž āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ°
āĻ āĻŦāĻļā§āĻ¯āĻ, āĻāĻĒāĻ¨āĻžāĻā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻžāĻ¨āĻ¤ā§ āĻšāĻŦā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻ°āĻž(1) āĻĻāĻ°āĻāĻžāĻ°ā§ āĻšāĻ¤ā§. āĻāĻāĻāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ, āĻāĻāĻŋ āĻ¯āĻžāĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ libexplain āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻ¸ā§āĻ¯ā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻāĻĒāĻžāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ
libexplain āĻāĻžāĻ āĻāĻ°āĻā§āĨ¤
āĻĻāĻ°ā§āĻļāĻ¨
"āĻāĻŽāĻžāĻā§ āĻ¸āĻŦāĻāĻŋāĻā§ āĻŦāĻ˛ā§āĻ¨, āĻāĻŽāĻ¨ āĻāĻŋāĻ¨āĻŋāĻ¸āĻā§āĻ˛āĻŋ āĻ¸āĻš āĻ¯āĻž āĻāĻŽāĻŋ āĻā§āĻāĻāĻ¤ā§ āĻāĻžāĻ¨āĻŋ āĻ¨āĻžāĨ¤"
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻāĻŋ āĻāĻŽāĻ¨āĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻ¯āĻāĻ¨ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻŋāĻāĻžāĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻā§āĻĄāĻāĻŋ āĻāĻĒāĻ¨āĻŋ
āĻāĻ¸āĻ˛ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ˛āĻŋāĻā§āĻ āĻāĻ°āĻž āĻšāĻŦā§. āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ āĻĒā§āĻ°āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻļāĻ¨ āĻĨāĻžāĻāĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻŋ āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ,
āĻ¯āĻāĻ¨āĻ āĻ¸āĻŽā§āĻāĻŦāĨ¤
āĻ¯āĻāĻ¨ āĻāĻ°āĻ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ°āĻŦāĻ°āĻžāĻš āĻāĻ°āĻž āĻ¸āĻŽā§āĻāĻŦ āĻšāĻ¯āĻŧ, āĻ¤āĻāĻ¨ libexplain āĻ¤āĻž āĻāĻ°āĻŦā§āĨ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤āĻ¤ āĻāĻŽ
āĻ¨āĻŋāĻā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻĄāĻžāĻāĻ¨ āĻāĻā§, āĻāĻžāĻ˛. āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻšāĻ˛ āĻ¯ā§ UIDs āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ°āĻ¯āĻŧā§āĻā§
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ¨āĻžāĻŽ, āĻāĻŋāĻāĻāĻĄāĻŋāĻā§āĻ˛āĻŋ āĻā§āĻˇā§āĻ ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻā§, āĻĒāĻŋāĻāĻāĻĄāĻŋāĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻā§
āĻ¨āĻžāĻŽ, āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻ¸ā§āĻā§āĻ°ā§āĻŽāĻā§āĻ˛āĻŋ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽā§āĻ° āĻ¸āĻžāĻĨā§ āĻĨāĻžāĻā§, āĻāĻ¤ā§āĻ¯āĻžāĻĻāĻŋ.
āĻĒāĻžāĻĨāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻāĻāĻāĻŋ āĻĒāĻžāĻĨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¤āĻŦā§ libexplain āĻ āĻ¨ā§āĻ°ā§āĻĒ āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻāĻ°āĻŦā§
āĻāĻžāĻāĻĒā§āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻāĻ˛ā§āĻĒ āĻĒā§āĻ°āĻ¸ā§āĻ¤āĻžāĻŦ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¨āĻžāĻŽāĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻāĻŽ āĻšāĻŋāĻĒ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻāĻŦāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻā§āĻ¨āĻāĻŋāĻ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻ
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¯āĻ¤āĻĻā§āĻ° āĻ¸āĻŽā§āĻāĻŦ, āĻ¯āĻĻāĻŋāĻ āĻāĻāĻ¨āĻ āĻāĻāĻ¨āĻ āĻāĻāĻŋ āĻšāĻ¯āĻŧ
āĻ āĻ¨āĻŋāĻŦāĻžāĻ°ā§āĻ¯
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻā§āĻ˛ā§āĻŦāĻžāĻ˛ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻŦāĻ˛ āĻāĻĄāĻŧāĻŋāĻ¯āĻŧā§, āĻ°ā§āĻā§
āĻ¯āĻ¤āĻāĻž āĻ¸āĻŽā§āĻāĻŦ āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻāĻĒāĻ° āĻ°āĻžāĻˇā§āĻā§āĻ°. āĻāĻāĻāĻŋ āĻāĻāĻ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻŦāĻžāĻĢāĻžāĻ° āĻāĻā§, āĻāĻŦāĻ
āĻ¯ā§ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ¤āĻž āĻĨā§āĻ°ā§āĻĄ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻ¨āĻ¯āĻŧ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ¸āĻŋāĻāĻ¨ā§āĻ¯āĻžāĻ˛ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ°āĻĻā§āĻ° āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻāĻāĻž āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§
āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ āĻ¸ā§āĻāĻĢāĻ˛ā§āĻ āĻāĻ°āĻŦā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻ¸āĻŽā§āĻāĻŦ āĻ¨āĻ¯āĻŧāĨ¤
āĻ¯āĻāĻ¨ āĻ¤āĻĨā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¸ā§āĻāĻ¸āĻžāĻĨā§ āĻāĻāĻāĻŋ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻāĻĒāĻ˛āĻŦā§āĻ§ / proc
āĻāĻ¨ā§āĻā§āĻ°āĻŋ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻ¨āĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯āĨ¤
āĻāĻŽāĻ¨āĻ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§ āĻ¯āĻāĻ¨ āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¨āĻžāĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦāĻĄāĻŧ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¸āĻš āĻāĻŽā§āĻĒāĻžāĻāĻ˛ āĻāĻ°āĻž āĻšāĻ¯āĻŧ. āĻŦāĻĄāĻŧ/āĻā§āĻ āĻ¨ā§āĻ
āĻ¸āĻŋāĻā§āĻĢā§āĻ°ā§āĻ¨āĻŋāĻ¯āĻŧāĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻŋ API-āĻ¤ā§ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ§āĻ°āĻ¨āĻā§ āĻĒā§āĻ°āĻāĻžāĻŦāĻŋāĻ¤ āĻāĻ°ā§ āĻāĻŦāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻžāĻ°āĻŋ āĻāĻ°āĻž āĻšāĻŦā§
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻŦāĻĄāĻŧ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¸āĻāĻā§āĻāĻž āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻĨāĻžāĻā§āĨ¤
FIXME: āĻā§āĻĄā§ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻā§āĻāĻž āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻžāĻ āĻāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ āĻāĻ
āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¯ getrlimit(2) āĻ¸ā§āĻŽāĻžāĻ¨āĻž, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋāĨ¤
āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻāĻ¨ āĻāĻ¤ā§āĻŽā§āĻ¯āĻŧāĻĻā§āĻ° āĻĒāĻĨāĻā§āĻ˛āĻŋ āĻ¤āĻĨā§āĻ¯āĻšā§āĻ¨āĨ¤ āĻ¯ā§āĻŽāĻ¨: āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻĄā§āĻŽāĻ¨,
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻāĻā§āĻ°āĻžāĻāĻ¨ā§āĻĄ āĻĒā§āĻ°āĻ¸ā§āĻ¸āĨ¤ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§, āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¤ā§ āĻĒāĻ°āĻŽ āĻĒāĻĨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
āĻĒāĻžāĻĨ āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨
āĻ¸āĻāĻā§āĻˇāĻŋāĻĒā§āĻ¤ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ: āĻĻā§āĻā§āĻ¨ āĻĒāĻĨ_āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨(7).
āĻĻā§āĻ°ā§āĻ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ: āĻŦā§āĻļā§āĻ°āĻāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻ¨āĻ āĻļā§āĻ¨ā§āĻ¨āĻ¨āĻŋ āĻĒāĻĨ_āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨(7), āĻāĻŦāĻ āĻ āĻ¨ā§āĻ āĻāĻ¨ā§āĻ¨āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§
āĻāĻāĻž āĻĒāĻĄāĻŧāĻž āĻ¨āĻž. āĻāĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻā§āĻāĻž āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻāĻā§:
āĻ§āĻžāĻĒ 1: āĻļā§āĻ°ā§ of āĻĻā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž
āĻ¯āĻĻāĻŋ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽāĻāĻŋ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ (â/â) āĻ āĻā§āĻˇāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻļā§āĻ°ā§āĻ° āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻŦā§
āĻāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻ°ā§āĻ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĨ¤
āĻ¯āĻĻāĻŋ āĻĒāĻžāĻĨāĻ¨ā§āĻŽāĻāĻŋ āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ(â/â) āĻ āĻā§āĻˇāĻ° āĻĻāĻŋāĻ¯āĻŧā§ āĻļā§āĻ°ā§ āĻ¨āĻž āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻ˛ā§āĻāĻāĻĒ
āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¯āĻāĻžāĻ°ā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĨ¤
āĻ§āĻžāĻĒ 2: āĻāĻ¯āĻŧāĻžāĻ āĻŦāĻ°āĻžāĻŦāĻ° āĻĻā§āĻ¯ āĻĒāĻĨ
āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻā§ āĻĒā§āĻ°āĻžāĻ°āĻŽā§āĻāĻŋāĻ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻāĻ¨, āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ -āĻāĻ° āĻāĻ¨ā§āĻ¯
āĻĒāĻĨāĻ¨āĻžāĻŽā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻ˛ āĻāĻāĻāĻŋ āĻ¸āĻžāĻŦāĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻ¯āĻž āĻ¸ā§āĻ˛ā§āĻ¯āĻžāĻļ (â/â) āĻĻā§āĻŦāĻžāĻ°āĻž āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§
āĻ āĻā§āĻˇāĻ°, āĻāĻ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĻā§āĻāĻž āĻšāĻ¯āĻŧāĨ¤
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¨āĻž āĻĨāĻžāĻā§, āĻāĻāĻāĻŋ EACCES
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ ("āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ°")āĨ¤
open(pathname = "/home/archives/.ssh/private_key", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§,
āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (13, EACCES) āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ¤ā§ āĻ āĻ¨ā§āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¨ā§āĻā§ˇ
āĻĒāĻžāĻĨāĻ¨āĻžāĻŽ "/home/archives/.ssh" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§, āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ°ā§āĻ¯āĻāĻ° GID 1000
"pmiller" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻŽāĻžāĻ˛āĻŋāĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§ āĻ¨āĻž 1001 "āĻāĻ°ā§āĻāĻžāĻāĻāĻ¸" āĻ¤āĻžāĻ āĻŽāĻžāĻ˛āĻŋāĻ
āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻŽā§āĻĄ "rwx" āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ āĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻŽā§āĻĄ āĻšāĻ˛ "---", āĻāĻŦāĻ
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻļā§āĻˇāĻžāĻ§āĻŋāĻāĻžāĻ°āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¨āĻ¯āĻŧ (DAC_READ_SEARCH āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¨ā§āĻ)
āĻ¯āĻĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¨āĻž āĻ¯āĻžāĻ¯āĻŧ, āĻāĻāĻāĻŋ ENOENT āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ ("āĻāĻŽāĻ¨ āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ")āĨ¤
āĻāĻ¨āĻ˛āĻŋāĻā§āĻ (āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "/home/microsoft/rubbish") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ (2,
ENOENT) āĻāĻžāĻ°āĻŖ āĻĒāĻĨāĻ¨āĻžāĻŽā§ āĻā§āĻ¨ "āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻĢā§āĻ" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ "/ āĻšā§āĻŽ" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻ¯āĻāĻ¨ āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻ˛ āĻāĻžāĻāĻĒ āĻāĻ°ā§, āĻ¤āĻāĻ¨ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻ¯āĻŧ āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨āĻ āĻ°āĻ¯āĻŧā§āĻā§
ENOENT āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ:
open(pathname = "/user/include/fcntl.h", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (2, ENOENT) āĻāĻžāĻ°āĻŖ āĻĒāĻĨāĻ¨āĻžāĻŽ "/" āĻ āĻā§āĻ¨ "āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ "usr" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ¨?
āĻ¯āĻĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻŦāĻž āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻ¨āĻ¯āĻŧ, āĻāĻāĻāĻŋ ENOTDIR
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĻā§ ("āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻ¯āĻŧ")āĨ¤
open(pathname = "/home/pmiller/.netrc/lca", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ āĻ¨āĻ¯āĻŧ
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (20, ENOTDIR) āĻāĻžāĻ°āĻŖ āĻĒāĻžāĻĨāĻ¨ā§āĻŽā§ ".netrc" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛
"/home/pmiller" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻŋ āĻ¨ā§āĻ
āĻ¯āĻĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻ¯āĻŧ, āĻ¤āĻžāĻšāĻ˛ā§ āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻā§ āĻ¸ā§āĻāĻŋāĻ¤ā§ āĻ¸ā§āĻ āĻāĻ°āĻŋ
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§ āĻ¯āĻžāĻ¨āĨ¤
āĻ¯āĻĻāĻŋ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ (symlink), āĻāĻŽāĻ°āĻž āĻĒā§āĻ°āĻĨāĻŽā§ āĻāĻ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻŋ
āĻ˛āĻŋāĻā§āĻ (āĻ¸ā§āĻāĻžāĻ°ā§āĻāĻŋāĻ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ˛ā§āĻāĻāĻĒ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¸āĻžāĻĨā§)āĨ¤ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻĒāĻ°, āĻ¯ā§
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻž āĻšāĻ˛ā§, āĻāĻāĻāĻŋ ENOTDIR āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĨ¤
āĻāĻ¨āĻ˛āĻŋāĻā§āĻ (āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "/tmp/dangling/rubbish") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ (2,
ENOENT) āĻāĻžāĻ°āĻŖ āĻĒāĻĨāĻ¨āĻžāĻŽā§ "āĻā§āĻ˛āĻ¨ā§āĻ¤" āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ "/ tmp -āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ
"āĻā§āĻĨāĻžāĻ āĻ¨āĻ¯āĻŧ" āĻŦā§āĻāĻžāĻ¯āĻŧ āĻ¯āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻ¨ā§āĻ
āĻ¯āĻĻāĻŋ āĻ¸āĻŋāĻŽāĻ˛āĻŋāĻāĻā§āĻ° āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ āĻ¸āĻĢāĻ˛ āĻšāĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻāĻŽāĻ°āĻž āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻ¸ā§āĻ āĻāĻ°āĻŋ
āĻ¯ā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ¤ā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻĻā§āĻā§āĻ¨, āĻāĻŦāĻ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§ āĻ¯āĻžāĻ¨āĨ¤ āĻāĻ˛ā§āĻ˛ā§āĻā§āĻ¯ āĻ¯ā§
āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻāĻžāĻ¨ā§ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻĄāĻŧāĻŋāĻ¤. āĻ¸ā§āĻā§āĻ¯āĻžāĻā§āĻ° āĻŦāĻŋāĻ°ā§āĻĻā§āĻ§ā§ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯
āĻāĻāĻžāĻ°āĻĢā§āĻ˛ā§, āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻĨā§āĻā§ āĻ°āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸ā§āĻŽāĻž āĻ°āĻ¯āĻŧā§āĻā§
āĻĒā§āĻ¨āĻ°āĻžāĻŦā§āĻ¤ā§āĻ¤āĻŋ āĻāĻā§āĻ°āĻ¤āĻž, āĻāĻŦāĻ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤ āĻāĻāĻāĻŋ ELOOP āĻ¤ā§āĻ°ā§āĻāĻŋ
āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ āĻ¤āĻŋāĻā§āĻ°āĻŽ āĻāĻ°āĻž āĻšāĻ˛ā§ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ ("āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ")āĨ¤
open(pathname = "/tmp/dangling", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ° āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ¤āĻ°
āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ (40, ELOOP) āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻ˛ā§āĻĒā§āĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§
āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ, "/tmp/dangling" āĻĨā§āĻā§ āĻļā§āĻ°ā§
āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŋāĻŽāĻ˛āĻŋāĻāĻ āĻĨāĻžāĻāĻ˛ā§ āĻāĻāĻāĻŋ ELOOP āĻŦāĻž EMLINK āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ āĻ¸āĻŽā§āĻāĻŦ, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¨āĻž
āĻ˛ā§āĻĒ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§āĨ¤
open(pathname = "/tmp/āĻ°ā§āĻ¯āĻžāĻŦāĻŋāĻ-āĻšā§āĻ˛", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ° āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ¤āĻ°
āĻ¸āĻŋāĻŽā§āĻŦāĻ˛āĻŋāĻ āĻ˛āĻŋāĻāĻ (40, ELOOP) āĻāĻžāĻ°āĻŖ āĻ āĻ¨ā§āĻāĻā§āĻ˛ā§ āĻ¸āĻŋāĻŽā§āĻŦāĻ˛āĻŋāĻ āĻ˛āĻŋāĻā§āĻ āĻāĻ° āĻ¸āĻŽā§āĻŽā§āĻā§āĻ¨ āĻšāĻ¯āĻŧā§āĻā§
āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ (8)
āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻā§āĻ¤ āĻ¸ā§āĻŽāĻž āĻŽā§āĻĻā§āĻ°āĻŋāĻ¤ āĻšāĻ¯āĻŧāĨ¤
āĻ§āĻžāĻĒ 3: āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻĻā§āĻ¯ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻĒā§āĻ°āĻŦā§āĻļ
āĻĒāĻžāĻĨāĻ¨āĻžāĻŽā§āĻ° āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§āĻ° āĻ¸āĻ¨ā§āĻ§āĻžāĻ¨ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻāĻ˛ā§āĻ° āĻŽāĻ¤ā§āĻ āĻšāĻ¯āĻŧ
āĻāĻĒāĻžāĻĻāĻžāĻ¨, āĻĒā§āĻ°ā§āĻŦāĻŦāĻ°ā§āĻ¤ā§ āĻ§āĻžāĻĒā§ āĻŦāĻ°ā§āĻŖāĻŋāĻ¤, āĻĻā§āĻāĻŋ āĻĒāĻžāĻ°ā§āĻĨāĻā§āĻ¯ āĻ¸āĻš:
(i) āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž (āĻ āĻ¨ā§āĻ¤āĻ¤ āĻĒāĻžāĻĨ āĻ°ā§āĻā§āĻ˛āĻŋāĻāĻļāĻ¨ āĻĒāĻ°ā§āĻ¯āĻ¨ā§āĻ¤
āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻĻā§āĻŦāĻŋāĻā§āĻ¨āĨ¤ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻŦāĻž āĻāĻāĻāĻŋ āĻ¨āĻ¨-āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻžāĻ°āĻŖ
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž)āĨ¤
(ā§¨)
āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¨āĻž āĻā§āĻ˛ā§ āĻāĻāĻŋ āĻ āĻāĻ¤ā§āĻ¯āĻž āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨āĻ¯āĻŧ; āĻšāĻ¯āĻŧāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§
āĻāĻāĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻāĻŋāĻāĻŋāĻ¤ā§āĻ¸āĻžāĻ° āĻāĻĒāĻ° āĻŦāĻŋāĻ¸ā§āĻ¤āĻžāĻ°āĻŋāĻ¤ āĻŦāĻ°ā§āĻŖāĻ¨āĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛ āĻĒā§āĻˇā§āĻ āĻžāĨ¤
(āĻ)
āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻšāĻ˛ā§ āĻļā§āĻˇ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻšāĻāĻ¯āĻŧāĻžāĻ āĻ¸āĻŽā§āĻāĻŦ
āĻāĻŦāĻ āĻāĻāĻŋ āĻ āĻ¨ā§āĻ¸āĻ°āĻŖ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻā§āĻ˛āĻž(2) O_NOFOLLOW āĻĒāĻ¤āĻžāĻāĻž:
open(pathname = "a-symlink", flags = O_RDONLY | O_NOFOLLOW) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ° āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻ¤āĻ°
āĻ¸āĻŋāĻŽā§āĻŦāĻ˛āĻŋāĻ āĻ˛āĻŋāĻā§āĻ (ELOOP) āĻāĻžāĻ°āĻŖ O_NOFOLLOW āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽ āĻāĻāĻāĻŋāĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ
āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ
(āĻ)
āĻĒāĻĨāĻ¨āĻžāĻŽ āĻāĻžāĻāĻĒ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻ˛ āĻāĻ°āĻž āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĨ¤ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻ¯āĻāĻ¨ ENOENT āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧ āĻ¤āĻāĻ¨ āĻĒāĻ°āĻžāĻŽāĻ°ā§āĻļ āĻĻā§āĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻāĻĻāĻžāĻšāĻ°āĻŖāĻ¸ā§āĻŦāĻ°ā§āĻĒ:
open(pathname = "/usr/include/filecontrl.h", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻā§āĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻŦāĻž
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (2, ENOENT) āĻāĻžāĻ°āĻŖ āĻĒāĻĨāĻ¨āĻžāĻŽā§ āĻā§āĻ¨ "filecontrl.h" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻ¨ā§āĻ
"/ usr / āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ "fcntl.h" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻŦāĻ˛āĻ¤ā§ āĻāĻžāĻ¨?
(v) āĻāĻāĻžāĻ āĻ¸āĻŽā§āĻāĻŦ āĻ¯ā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻāĻŋ a āĻāĻžāĻĄāĻŧāĻž āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻšāĻ¤ā§ āĻšāĻŦā§
āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛:
āĻ°āĻŋāĻĄāĻ˛āĻŋāĻāĻ (āĻĒāĻžāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "āĻļā§āĻ§ā§-āĻ-āĻĢāĻžāĻāĻ˛", āĻĄā§āĻāĻž = 0x7F930A50, āĻĄā§āĻāĻž_āĻ¸āĻžāĻāĻ = 4097) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§,
āĻ āĻŦā§āĻ§ āĻ¯ā§āĻā§āĻ¤āĻŋ (22, EINVAL) āĻāĻžāĻ°āĻŖ āĻĒāĻĨāĻ¨āĻžāĻŽ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛, āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻ āĻ¨āĻ¯āĻŧ
(āĻ)
FIXME: "t" āĻŦāĻŋāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĨ¤
āĻ¸ā§āĻŽāĻž
āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽāĻā§āĻ˛āĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ āĻ¨ā§āĻāĻā§āĻ˛āĻŋ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻĒāĻžāĻĨāĻ¨āĻžāĻŽā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻ¸ā§āĻŽāĻž
āĻĒāĻžāĻĨāĻ¨āĻžāĻŽā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§āĻā§āĻ āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻāĻā§āĨ¤ āĻ¯āĻĻāĻŋ āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ (āĻŦāĻž āĻāĻŋāĻā§ āĻŽāĻ§ā§āĻ¯āĻŦāĻ°ā§āĻ¤ā§
āĻĒā§āĻ°āĻ¤ā§āĻā§ āĻ˛āĻŋāĻā§āĻāĻā§āĻ˛āĻŋ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒāĻĨāĻ¨āĻžāĻŽ) āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ, āĻāĻāĻāĻŋ ENAMETOOLONGā§ˇ
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĻā§ ("āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ")āĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŽāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž.
āĻā§āĻ˛ā§āĻ¨ (āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽ āĻ āĻ¨ā§āĻ āĻŦāĻĄāĻŧ (36,
ENAMETOOLONG) āĻāĻžāĻ°āĻŖ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻĒāĻžāĻĨ āĻĻā§āĻ°ā§āĻā§āĻ¯ (4096) āĻāĻžāĻĄāĻŧāĻŋāĻ¯āĻŧā§ āĻā§āĻā§
āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ¨āĻžāĻŽā§āĻ° āĻĻā§āĻ°ā§āĻā§āĻ¯ āĻ¸ā§āĻŽāĻž
āĻāĻŋāĻā§ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ āĻā§āĻ°āĻŋāĻ¯āĻŧā§āĻ¨ā§āĻā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻĒāĻžāĻĨ āĻāĻŽā§āĻĒā§āĻ¨ā§āĻ¨ā§āĻā§ āĻŦāĻžāĻāĻā§āĻ° āĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻ¸ā§āĻŽāĻž āĻĨāĻžāĻā§āĨ¤
āĻ¤āĻžāĻĻā§āĻ° āĻā§āĻ āĻā§āĻ āĻ¨ā§āĻ°āĻŦā§ āĻāĻāĻŋ āĻŽā§āĻāĻžāĻŦā§āĻ˛āĻž āĻāĻ°ā§, āĻāĻŦāĻ āĻā§āĻ āĻā§āĻ ENAMETOOLONāĻ āĻĻā§āĻ¯āĻŧ; lib āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ pathconf(3) _PC_NO_TRUNC āĻ¯āĻž āĻŦāĻ˛āĻŦā§āĻ¨āĨ¤ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻāĻ˛ā§,
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻ¸ā§āĻŽāĻžāĻāĻŋ āĻŦāĻ˛āĻŦā§, āĻ¸ā§āĻŽāĻžāĻāĻŋ āĻšāĻ˛
āĻĨā§āĻā§ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ pathconf(3) _PC_NAME_MAXāĨ¤ āĻāĻŋāĻāĻžāĻŦā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŽāĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ˛āĻā§āĻˇā§āĻ¯ āĻāĻ°ā§āĻ¨
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž.
āĻā§āĻ˛ā§āĻ¨ (āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "system7/only-had-14-āĻ āĻā§āĻˇāĻ°", āĻĒāĻ¤āĻžāĻāĻž = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻĢāĻžāĻāĻ˛
āĻ¨āĻžāĻŽāĻāĻŋ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ (36, ENAMETOOLONG) āĻāĻžāĻ°āĻŖ "āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°-14-āĻ āĻā§āĻˇāĻ°" āĻāĻĒāĻžāĻĻāĻžāĻ¨ āĻšāĻ˛
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŽāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻŦā§āĻļāĻŋ (14)
āĻāĻžāĻ˛āĻŋ āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ
āĻŽā§āĻ˛ āĻāĻāĻ¨āĻŋāĻā§āĻ¸ā§, āĻāĻžāĻ˛āĻŋ āĻĒāĻžāĻĨāĻ¨āĻžāĻŽāĻāĻŋ āĻŦāĻ°ā§āĻ¤āĻŽāĻžāĻ¨ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻā§ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻžāĻ˛ POSIX āĻāĻĻā§āĻļ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻĒāĻĨāĻ¨āĻžāĻŽ āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧāĨ¤
open(pathname = "", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻ°āĻāĻŽ āĻā§āĻ¨ āĻĢāĻžāĻāĻ˛ āĻŦāĻž āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨ā§āĻ (2,
ENOENT) āĻāĻžāĻ°āĻŖ POSIX āĻāĻĻā§āĻļ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻĒāĻĨāĻ¨āĻžāĻŽ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻ¯āĻžāĻŦā§ āĻ¨āĻž
āĻ¸āĻĢāĻ˛āĻāĻžāĻŦā§
āĻ āĻ¨ā§āĻŽāĻ¤āĻŋāĻ¸āĻŽā§āĻš
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻŦāĻŋāĻ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŦāĻŋāĻā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻ¨āĻŋāĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¤āĨ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻā§āĻ°ā§āĻĒ
āĻ¤āĻŋāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻāĻĄāĻŋ āĻāĻ° āĻŽāĻžāĻ˛āĻŋāĻ āĻāĻāĻĄāĻŋāĻ° āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ
āĻĢāĻžāĻāĻ˛ āĻ¤āĻŋāĻ¨āĻāĻŋāĻ° āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻā§āĻ°ā§āĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯āĻāĻ¨ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻā§āĻ°ā§āĻĒ āĻāĻāĻĄāĻŋ āĻšāĻ¯āĻŧ āĻ¸āĻŽāĻžāĻ¨ āĻšāĻ¯āĻŧ
āĻāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻāĻžāĻ°ā§āĻ¯āĻāĻ°ā§ āĻā§āĻ°ā§āĻĒ āĻāĻāĻĄāĻŋ, āĻŦāĻž āĻāĻ° āĻĒāĻ°āĻŋāĻĒā§āĻ°āĻ āĻā§āĻ°ā§āĻĒ āĻāĻāĻĄāĻŋāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ
āĻāĻ˛āĻŋāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĨ¤ āĻ¯āĻāĻ¨ āĻā§āĻ¨āĻāĻŋāĻ āĻ§āĻ°ā§ āĻ¨āĻž, āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻā§āĻ°ā§āĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻā§āĻ˛ā§āĻ¨ (āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽ = "/ Etc / passwd", āĻĒāĻ¤āĻžāĻāĻž = O_WRONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ (13,
EACCES) āĻāĻžāĻ°āĻŖ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻ° "passwd" āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻ˛ā§āĻāĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¨ā§āĻ
āĻĒāĻžāĻĨāĻ¨āĻžāĻŽā§ āĻĢāĻžāĻāĻ˛ "āĻāĻ¨ā§āĻ¯ / etc" āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻžāĻ°ā§āĻ¯āĻāĻ° UID 1000 "pmiller"
āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛ āĻŽāĻžāĻ˛āĻŋāĻ 0 "āĻ°ā§āĻ" āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻ˛ā§ āĻ¨āĻž āĻ¤āĻžāĻ āĻŽāĻžāĻ˛āĻŋāĻā§āĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻŽā§āĻĄ "rw-"
āĻāĻĒā§āĻā§āĻˇāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻŽā§āĻĄ āĻšāĻ˛ "r--", āĻāĻŦāĻ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋ āĻŦāĻŋāĻļā§āĻˇāĻžāĻ§āĻŋāĻāĻžāĻ°āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻ¨āĻ¯āĻŧ
(DAC_OVERRIDE āĻā§āĻˇāĻŽāĻ¤āĻž āĻ¨ā§āĻ)
āĻāĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻŋāĻā§ āĻāĻ˛ā§āĻ˛ā§āĻāĻ¯ā§āĻā§āĻ¯ āĻ¸ā§āĻĨāĻžāĻ¨ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧā§āĻā§, āĻāĻžāĻ°āĻŖ āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ āĻāĻāĻŋ āĻāĻžāĻ¨ā§āĻ¨ āĻ¨āĻž
āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§āĨ¤ āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§: āĻŽāĻžāĻ˛āĻŋāĻ, āĻā§āĻˇā§āĻ ā§ āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯
āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻāĻāĻā§āĻāĻŋāĻ¯āĻŧāĻž, āĻ¤āĻžāĻ°āĻž āĻāĻāĻ¸āĻžāĻĨā§ "āĻŦāĻž" āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
āĻ¸ā§āĻā§āĻ°ā§āĻ¯āĻžāĻ āĻāĻŦāĻ āĻŽāĻāĻžāĻĻāĻžāĻ° āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻ¨
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻžāĻ° āĻ˛ā§āĻāĻžāĻ° āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§
āĻāĻāĻ°ā§āĻˇāĻŖā§āĻ¯āĻŧ quirks āĻāĻŦāĻ āĻ¸ā§āĻŽāĻžāĻ¨āĻž āĻļāĻ°ā§āĻ¤, āĻŦāĻž āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻā§āĻ˛(3) āĻŽāĻžāĻ¨āĨ¤
āĻāĻ¨ā§āĻŽā§āĻĄāĻŋāĻ¯āĻŧāĻžāĻŽ, āĻ¨āĻž āĻŽāĻ§ā§āĻ¯āĻŽ āĻĒāĻžāĻāĻ¯āĻŧāĻž
āĻāĻāĻāĻŋ āĻ¸āĻŋāĻĄāĻŋ āĻ āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°āĻžāĻ° āĻāĻžāĻāĻāĻŋ āĻāĻ āĻāĻžāĻāĻā§āĻ° āĻļāĻŋāĻ°ā§āĻ¨āĻžāĻŽā§āĻ° āĻāĻ¤ā§āĻ¸ āĻāĻŋāĻ˛āĨ¤
$ dd if=/dev/cdrom of=fubar.iso
dd: "/dev/cdrom" āĻā§āĻ˛āĻž āĻšāĻā§āĻā§: āĻā§āĻ¨ā§ āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ
$
āĻ˛ā§āĻāĻ āĻāĻļā§āĻāĻ°ā§āĻ¯ āĻšāĻ¯āĻŧā§āĻāĻŋāĻ˛ā§āĻ¨ āĻā§āĻ¨ āĻ¤āĻžāĻ° āĻāĻŽā§āĻĒāĻŋāĻāĻāĻžāĻ° āĻ¤āĻžāĻā§ āĻŦāĻ˛āĻā§ āĻ¯ā§ āĻŽāĻžāĻ¨āĻ¸āĻŋāĻ āĻŦāĻ˛ā§ āĻāĻŋāĻā§ āĻ¨ā§āĻ
āĻŽāĻ§ā§āĻ¯āĻŽ. āĻŦā§āĻļ āĻŦā§āĻ¯āĻ¤ā§āĻ¤ āĻ¯ā§ āĻŦāĻŋāĻĒā§āĻ˛ āĻ¸āĻāĻā§āĻ¯āĻ āĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ¯āĻŧ āĻāĻāĻ°ā§āĻāĻŋ āĻāĻžāĻˇāĻžāĻāĻžāĻˇā§ āĻ¨āĻ¯āĻŧ
āĻāĻŽāĻ¨āĻāĻŋ āĻ¸āĻā§āĻ¤āĻ¨ āĻ¯ā§ "āĻŽāĻŋāĻĄāĻŋāĻ¯āĻŧāĻž" āĻāĻāĻāĻŋ āĻŦāĻšā§āĻŦāĻāĻ¨, āĻāĻāĻž āĻā§āĻĄāĻŧā§ āĻĻāĻŋāĻ¨ āĻ¯ā§ "āĻŽāĻžāĻ§ā§āĻ¯āĻŽ" āĻāĻ° āĻāĻāĻŦāĻāĻ¨, āĻ¸ā§āĻā§āĻ°āĻŋāĻ
āĻĻā§āĻŦāĻžāĻ°āĻž āĻĢāĻŋāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻ°āĻ°(3) ENOMEDIUM-āĻāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ¤āĻāĻžāĻ āĻāĻ āĻŋāĻ¨ āĻ¯ā§ āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻŽā§āĻā§āĻ¤
āĻŦāĻŋāĻˇāĻ¯āĻŧāĻŦāĻ¸ā§āĻ¤ā§āĨ¤
āĻāĻāĻ¨ āĻā§āĻ˛āĻž(2) ENOMEDIUM āĻĢā§āĻ°āĻ¤ āĻĻā§āĻ¯āĻŧ āĻāĻāĻž āĻāĻžāĻ˛ā§ āĻšāĻŦā§ āĻ¯āĻĻāĻŋ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻ¸āĻžāĻ°āĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ āĻ¸āĻžāĻŽāĻžāĻ¨ā§āĻ¯, āĻāĻāĻž āĻĄā§āĻ°āĻžāĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻāĻĒāĻ° āĻāĻŋāĻ¤ā§āĻ¤āĻŋ āĻāĻ°ā§. āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻ¸ā§āĻŦāĻ°ā§āĻĒ:
...āĻāĻžāĻ°āĻŖ āĻĢā§āĻ˛āĻĒāĻŋ āĻĄā§āĻ°āĻžāĻāĻā§ āĻā§āĻ¨ā§ āĻĄāĻŋāĻ¸ā§āĻ āĻ¨ā§āĻ
... āĻāĻžāĻ°āĻŖ CD-ROM āĻĄā§āĻ°āĻžāĻāĻā§ āĻā§āĻ¨ā§ āĻĄāĻŋāĻ¸ā§āĻ āĻ¨ā§āĻ
... āĻāĻžāĻ°āĻŖ āĻā§āĻĒ āĻĄā§āĻ°āĻžāĻāĻā§ āĻā§āĻ¨ āĻā§āĻĒ āĻ¨ā§āĻ
...āĻāĻžāĻ°āĻŖ āĻāĻžāĻ°ā§āĻĄ āĻ°āĻŋāĻĄāĻžāĻ°ā§ āĻā§āĻ¨ā§ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸ā§āĻāĻŋāĻ āĻ¨ā§āĻ
āĻāĻŦāĻ āĻ¤āĻžāĻ āĻāĻāĻŋ āĻĒāĻžāĻ¸ āĻāĻ¸ā§āĻāĻŋāĻ˛ ...
open(pathname = "/dev/cdrom", flags = O_RDONLY) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻā§āĻ¨ā§ āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻā§āĻāĻā§ āĻĒāĻžāĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ (123,
ENOMEDIUM) āĻāĻžāĻ°āĻŖ CD-ROM āĻĄā§āĻ°āĻžāĻāĻā§ āĻā§āĻ¨ā§ āĻĄāĻŋāĻ¸ā§āĻ āĻāĻā§ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§ āĻ¨āĻž
āĻā§āĻļāĻ˛āĻāĻŋ, āĻ¯āĻž āĻ˛ā§āĻāĻ āĻāĻā§ āĻ āĻāĻžāĻ¨āĻž āĻāĻŋāĻ˛, āĻ¸ā§āĻāĻŋ āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻā§āĻ˛āĻ¤ā§
O_NONBLOCK āĻĒāĻ¤āĻžāĻāĻž, āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻā§ āĻŽāĻžāĻ§ā§āĻ¯āĻŽ āĻāĻžāĻĄāĻŧāĻžāĻ āĻāĻāĻāĻŋ āĻĄā§āĻ°āĻžāĻāĻ āĻā§āĻ˛āĻ¤ā§ āĻĻā§āĻŦā§ā§ˇ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ
āĻāĻ¸ā§āĻ¯ā§ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¯āĻ¤āĻā§āĻˇāĻŖ āĻ¨āĻž āĻāĻĒāĻ¨āĻŋ āĻŦā§āĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻā§āĨ¤ (āĻ¨āĻž
āĻāĻāĻŋ POSIX āĻšāĻ˛ā§ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤, āĻ¤āĻŦā§ āĻāĻāĻŋ BSD āĻāĻŦāĻ Solaris-āĻāĻ āĻ¸ā§āĻāĻžāĻŦā§ āĻāĻžāĻ āĻāĻ°ā§ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§, āĻ āĻ¨ā§āĻ¯āĻžāĻ¯āĻŧā§
āĻĻā§āĻ¯ wodim(1) āĻ¸ā§āĻ¤ā§āĻ°āĨ¤)
āĻĒā§āĻ°ā§āĻā§āĻˇāĻžāĻĒāĻā§ "āĻĄāĻŋāĻ¸ā§āĻ" āĻāĻŦāĻ "āĻĄāĻŋāĻ¸ā§āĻ" āĻāĻ° āĻāĻŋāĻ¨ā§āĻ¨ āĻāĻŋāĻ¨ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ āĻ¨ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻ¸āĻŋāĻĄāĻŋ āĻŽāĻžāĻ¨ āĻāĻĻā§āĻā§āĻ¤
āĻĢā§āĻ°āĻžāĻ¨ā§āĻ¸ā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŦ āĻāĻŋāĻā§āĻ° āĻāĻāĻāĻŋ "k" āĻāĻā§āĨ¤
EFAULT, āĻāĻžāĻ°āĻžāĻĒ āĻ āĻŋāĻāĻžāĻ¨āĻž
āĻ¯ā§āĻā§āĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻ¯āĻž āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻ¨ā§āĻ¯āĻŧ āĻ¤āĻž EFAULT āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻā§āĻ¨ āĻ¯ā§āĻā§āĻ¤āĻŋāĻāĻŋ āĻĻā§āĻˇā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻāĻŋāĻā§ āĻŦāĻŋāĻ°āĻā§āĻ¤ āĻ¨āĻž āĻāĻ°ā§āĻ āĻāĻ°ā§
(āĻŦāĻž āĻĨā§āĻ°ā§āĻĄ) āĻ¸āĻāĻā§āĻ¤ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻāĨ¤
āĻ¯āĻāĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§, āĻŽāĻŋāĻ¨āĻā§āĻ°(2) āĻŽā§āĻŽāĻ°āĻŋ āĻ āĻā§āĻāĻ˛āĻāĻŋ āĻŦā§āĻ§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻāĻŋāĻā§āĻāĻžāĻ¸āĻž āĻāĻ°āĻ¤ā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻŋ āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§: āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻ āĻŽā§āĻŽāĻ°āĻŋāĻ¤ā§ āĻ¨āĻ¯āĻŧ, āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻāĻŦāĻ āĻļāĻžāĻ°ā§āĻ°āĻŋāĻāĻāĻžāĻŦā§
āĻŽā§āĻŽāĻ°āĻŋ, āĻāĻŦāĻ āĻŽā§āĻ¯āĻžāĻĒ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĻ¨āĻŋāĨ¤ āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°ā§āĻ° āĻŦā§āĻ§āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻĒā§āĻ°āĻĨāĻŽ āĻĻā§āĻāĻŋ "āĻšā§āĻ¯āĻžāĻ"
āĻāĻŦāĻ āĻļā§āĻˇāĻāĻŋ āĻšāĻ˛ "āĻ¨āĻž"āĨ¤
āĻ¸āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻā§āĻ āĻāĻ°āĻž āĻāĻ°āĻ āĻāĻ āĻŋāĻ¨, āĻāĻžāĻ°āĻŖ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻŦāĻ āĻ¸āĻžāĻāĻā§āĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ°
āĻāĻāĻāĻŋ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻā§ āĻāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ āĻāĻŽāĻžāĻĻā§āĻ° NUL āĻā§āĻāĻā§ āĻŦā§āĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻāĻŦāĻ āĻāĻāĻŋ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
segfault, catch-22.
āĻāĻāĻŋāĻā§ āĻāĻŋāĻ°ā§ āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ lstat(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ (āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻāĻŋāĻ¤ āĻ¸āĻā§āĻā§
āĻāĻžāĻ˛ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋ) āĻŦā§āĻ§āĻ¤āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŋ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻ¤ā§āĨ¤ āĻāĻāĻāĻŋ āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻĢā§āĻ°āĻ¤ && errno == EFAULT
āĻāĻāĻāĻŋ "āĻ¨āĻž" āĻāĻŦāĻ āĻ āĻ¨ā§āĻ¯ āĻāĻŋāĻā§ āĻāĻāĻāĻŋ "āĻšā§āĻ¯āĻžāĻ"āĨ¤ āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻāĻā§āĻ˛āĻŋāĻā§ PATH_MAX-āĻ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§ āĻāĻ°ā§ā§ˇ
āĻ āĻā§āĻˇāĻ°, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¨āĻ¯āĻŧ, āĻāĻžāĻ°āĻŖ āĻāĻāĻŋ
āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ¸āĻŦāĻ¸āĻŽāĻ¯āĻŧ āĻĻā§āĻ°ā§āĻāĻ¤āĻŽ āĻ¸ā§āĻā§āĻ°āĻŋāĻ āĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻā§ āĻ¯āĻ¤ā§āĻ¨āĻļā§āĻ˛.
EMFILE, āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻ āĻ¨ā§āĻ āĻā§āĻ˛āĻž āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ°
āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ āĻ¸āĻāĻā§āĻ¯āĻ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻā§āĻ˛āĻž āĻĨāĻžāĻā§āĨ¤
āĻ¯āĻĻāĻŋ āĻĒā§āĻ°āĻā§āĻ¤ āĻ¸ā§āĻŽāĻž āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻŦāĻ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻž
āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ / proc āĻāĻāĻž āĻāĻŋ āĻĒāĻĄāĻŧāĻ¤ā§.
open_max = sysconf(_SC_OPEN_MAX);
āĻāĻ āĻāĻ āĻ¤āĻžāĻ āĻāĻ āĻŋāĻ¨ āĻ¨āĻž, āĻāĻāĻāĻŋ āĻāĻā§ sysconf(3) āĻ¸ā§āĻŽāĻž āĻĒā§āĻ°āĻžāĻĒā§āĻ¤āĻŋāĻ° āĻāĻĒāĻžāĻ¯āĻŧāĨ¤
ENFILE, āĻ āĻ¤ā§āĻ¯āĻ§āĻŋāĻ āĻ āĻ¨ā§āĻ āĻā§āĻ˛āĻž āĻ¨āĻĨāĻŋ āĻĒāĻ¤ā§āĻ° in āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻā§ āĻ¯āĻāĻ¨ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻ¸ā§āĻŽāĻž āĻā§āĻ˛āĻž āĻĢāĻžāĻāĻ˛ā§āĻ° āĻŽā§āĻ āĻ¸āĻāĻā§āĻ¯āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻĒā§āĻāĻā§āĻā§ āĻāĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻā§āĻ¨ āĻšāĻžāĻ¤ āĻ¨ā§āĻ sysconf(3) āĻ¸ā§āĻŽāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻĒāĻžāĻ¯āĻŧāĨ¤
āĻāĻ°āĻ āĻāĻā§āĻ°ā§ āĻāĻ¨āĻ¨ āĻāĻ°āĻ˛ā§, āĻā§āĻ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¯ā§ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻāĻāĻŋ āĻāĻā§ / proc āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻāĻŽāĻ°āĻž āĻĒāĻĄāĻŧāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻ āĻŽāĻžāĻ¨ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤. āĻā§āĻ¯āĻžāĻ-22: āĻāĻŽāĻ°āĻž āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻŦāĻžāĻāĻ°ā§, āĻ¤āĻžāĻ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻā§āĻ˛āĻ¤ā§ āĻĒāĻžāĻ°āĻŋ āĻ¨āĻž
āĻ¸ā§āĻŽāĻž āĻĒāĻĄāĻŧā§āĻ¨āĨ¤
āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ā§ āĻāĻāĻŋ āĻĒāĻžāĻāĻ¯āĻŧāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻ°āĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻāĻŋāĻ¤ā§ āĻā§āĻ¨āĻ [āĻ] glibc āĻ°ā§āĻ¯āĻžāĻĒāĻžāĻ° āĻĢāĻžāĻāĻļāĻ¨ āĻ¨ā§āĻ, āĻ¤āĻžāĻ
āĻāĻĒāĻ¨āĻžāĻā§ āĻāĻāĻŋ āĻā§āĻŦ āĻ¸āĻžāĻŦāĻ§āĻžāĻ¨ā§ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§:
āĻĻā§āĻ°ā§āĻ
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĢāĻžāĻāĻ˛(āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°)
{
#ifdef __linux__
struct __sysctl_args args;
int32_t āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĢāĻžāĻāĻ˛;
size_t maxfile_size = āĻāĻāĻžāĻ°(maxfile);
int name[] = { CTL_FS, FS_MAXFILE };
memset(&args, 0, sizeof(struct __sysctl_args));
args.name = āĻ¨āĻžāĻŽ;
args.nlen = 2;
args.oldval = &maxfile;
args.oldlenp = &maxfile_size;
āĻ¯āĻĻāĻŋ (syscall(SYS__sysctl, &args) >= 0)
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽā§āĻ¯āĻžāĻā§āĻ¸āĻĢāĻžāĻāĻ˛;
#endif
āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ -1;
}
āĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ¯āĻŧ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻžāĻ° āĻ¸ā§āĻŽāĻžāĻā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ, āĻ¯āĻāĻ¨ āĻāĻĒāĻ˛āĻŦā§āĻ§ āĻĨāĻžāĻā§āĨ¤
EINVAL "āĻ āĻŦā§āĻ§ āĻ¯ā§āĻā§āĻ¤āĻŋ" vs ENOSYS "āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻž āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤"
āĻ āĻ¸āĻŽāĻ°ā§āĻĨāĻŋāĻ¤ āĻāĻ°ā§āĻŽ (āĻ¯ā§āĻŽāĻ¨ āĻ¸āĻŋāĻŽāĻŦāĻ˛āĻŋāĻ āĻ˛āĻŋāĻā§āĻ(2) āĻāĻāĻāĻŋ FAT āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§) āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž
āĻ§āĻžāĻ°āĻžāĻŦāĻžāĻšāĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĨā§āĻā§ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻ¤ā§āĨ¤ āĻāĻāĻž EINVAL āĻŦāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
ENOSYS āĻĢāĻŋāĻ°ā§ āĻāĻ¸ā§āĻā§āĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻ āĻŋāĻ āĻšāĻ¯āĻŧ, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ā§ˇ
āĻ¯ā§āĻšā§āĻ¤ā§ EINVAL āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻĨāĻžāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
āĻŦāĻŋāĻāĻĻā§āĻ°āĻ āĻ¯ā§ āĻā§āĻ˛(3) is āĻ¨āĻž āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻ¸ā§āĻ
āĻāĻŽāĻ¨ āĻāĻŋāĻā§ āĻ¸āĻŽāĻ¯āĻŧ āĻāĻā§ āĻ¯āĻāĻ¨ āĻāĻŋāĻāĻžāĻŦā§ āĻāĻŦāĻ āĻāĻŋāĻāĻžāĻŦā§ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°āĻ¤ā§ [e]glibc āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§
āĻ¯āĻāĻ¨ āĻāĻŋāĻā§ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¤ā§āĻ°ā§āĻāĻŋāĻā§āĻ˛āĻŋ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻ¯āĻŧāĨ¤
feof(ā§¨ā§Ļā§§ā§§), āĻ¨āĻĨāĻŋ āĻ¨āĻŽā§āĻŦāĻ°(3)
āĻāĻāĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧāĻ āĻ āĻ¨ā§āĻŽāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¯ā§ āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž. āĻāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¯āĻĻāĻŋ āĻ¸āĻ¤ā§āĻ¯
āĻĻā§āĻ¯ āĻĒā§āĻ°āĻŦāĻžāĻš āĻ¯ā§āĻā§āĻ¤āĻŋ āĻŦā§āĻ§, āĻ¤āĻŦā§ āĻ¤āĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻ āĻŦā§āĻ§ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ
āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ°
fpathconf(ā§¨ā§Ļā§§ā§§), pathconf(3)
āĻāĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ fpathconf(2) āĻāĻŦāĻ pathconf(2) āĻŦā§āĻ§āĻāĻžāĻŦā§ -1 āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻ āĻāĻāĻŋ
āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻā§āĻ˛(3) āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§.
ioctls(2)
āĻāĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ ioctls(2) āĻŦā§āĻ§āĻāĻžāĻŦā§ -1 āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻ¤āĻžāĻ āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž
āĻā§āĻ˛(3) āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§.
readdir(3)
āĻāĻ° āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨ readdir(3) āĻāĻāĻ¯āĻŧ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻļā§āĻˇā§āĻ° āĻāĻ¨ā§āĻ¯ NULLāĨ¤ āĻāĻāĻžāĻ
āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻā§āĻ˛(3) āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§.
āĻ¸ā§āĻāĻŦāĻžāĻĢ(ā§¨ā§Ļā§§ā§§), āĻ¸ā§āĻāĻŦāĻžāĻĢāĻžāĻ°(ā§¨ā§Ļā§§ā§§), āĻ¸ā§āĻāĻ˛āĻžāĻāĻ¨āĻŦāĻžāĻĢ(ā§¨ā§Ļā§§ā§§), setvbuf(3)
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨ āĻļā§āĻˇ āĻāĻžāĻĄāĻŧāĻž āĻ¸āĻŦ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻĢāĻŋāĻ°ā§. āĻāĻŦāĻ setvbuf(3) āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¤ā§ "āĻ -āĻļā§āĻ¨ā§āĻ¯" āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻšāĻā§āĻā§āĨ¤ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĻā§āĻāĻž āĻĻāĻ°āĻāĻžāĻ° āĻā§āĻ˛(3) āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§
āĻ¸ā§āĻāĨ¤
āĻ¸ā§āĻā§āĻ°āĻā§āĻĄ(ā§¨ā§Ļā§§ā§§), strtol(ā§¨ā§Ļā§§ā§§), strtold(ā§¨ā§Ļā§§ā§§), āĻ¸ā§āĻā§āĻ°ā§āĻ˛(ā§¨ā§Ļā§§ā§§), strtoul(ā§¨ā§Ļā§§ā§§), āĻ¸ā§āĻā§āĻ°āĻāĻāĻ˛(3)
āĻāĻ āĻĢāĻžāĻāĻļāĻ¨āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ¤ā§ 0 āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§, āĻ¤āĻŦā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻŦā§āĻ§ āĻ°āĻŋāĻāĻžāĻ°ā§āĻ¨ āĻŽāĻžāĻ¨āĻāĨ¤ āĻāĻāĻžāĻ
āĻĻā§āĻāĻ¤ā§ āĻšāĻŦā§ āĻāĻŋāĻ¨āĻž āĻā§āĻ˛(3) āĻ¸ā§āĻĒāĻˇā§āĻāĻāĻžāĻŦā§ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§.
ungetc(3)
āĻ¯āĻĻāĻŋāĻ ANSI C āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻĻā§āĻŦāĻžāĻ°āĻž āĻŦā§āĻ¯āĻžāĻāĻāĻĒā§āĻ° āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻāĻāĻ āĻ āĻā§āĻˇāĻ° āĻŦāĻžāĻ§ā§āĻ¯āĻ¤āĻžāĻŽā§āĻ˛āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻŽā§āĻĄāĻŧ āĻ¨ā§āĻ¯āĻŧ
āĻāĻāĻ āĻ¯ā§ [e]glibc āĻāĻ°ā§ āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ... āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻ° āĻŽāĻžāĻ¨ā§ āĻāĻāĻŋ ENOMEM āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻāĻāĻž āĻšāĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻ¯āĻĻāĻŋ EBADF āĻāĻ° āĻ¸āĻžāĻĨā§ āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧ fp āĻāĻžāĻ˛ āĻ¸āĻŦāĻā§āĻ¯āĻŧā§ āĻāĻ āĻŋāĻ¨, āĻ¯āĻĻāĻŋ āĻāĻĒāĻ¨āĻŋ EOF āĻĒāĻžāĻ¸ āĻāĻ°ā§āĻ¨ āĻāĻāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋ
āĻĒā§āĻ°āĻ¤ā§āĻ¯āĻžāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĨ¤
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻ¸āĻ āĻŋāĻāĻāĻžāĻŦā§ āĻāĻ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°ā§, āĻāĻŽāĻ¨āĻāĻŋ āĻāĻŽāĻ¨ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§āĻ āĻ¯ā§āĻāĻžāĻ¨ā§
āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŽāĻžāĻ¨ āĻāĻžāĻ°āĻžāĻĒāĻāĻžāĻŦā§ āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻ¯āĻĻāĻŋ āĻ¸āĻŦ.
ENOSPC, āĻ¨āĻž āĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻžāĻŽ on āĻ¯āĻ¨ā§āĻ¤ā§āĻ°
āĻ¯āĻāĻ¨ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛āĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ, āĻ¤āĻāĻ¨ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŽāĻžāĻāĻ¨ā§āĻāĻāĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻš āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĨ¤ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻ¸ āĻ āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĨ¤
āĻ˛āĻŋāĻā§āĻ¨(fildes = 1 "āĻāĻĻāĻžāĻšāĻ°āĻŖ", data = 0xbfff2340, data_size = 5) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻā§āĻ¨ā§ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻ¨ā§āĻ
āĻĄāĻŋāĻāĻžāĻāĻ¸ā§ (28, ENOSPC) āĻāĻžāĻ°āĻŖ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ°āĻ¯āĻŧā§āĻā§ ("/ āĻšā§āĻŽ") āĻ¨āĻžāĻ
āĻĄā§āĻāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻ°āĻ āĻāĻžāĻ¯āĻŧāĻāĻž
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ°āĻ āĻŦāĻŋāĻļā§āĻˇ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŦā§ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻĒā§āĻ°āĻā§āĻ¤ āĻāĻāĻžāĻ°āĨ¤
EROFS, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻžāĻ āĻ¯ā§āĻā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ
āĻ¯āĻāĻ¨ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛āĻā§ āĻŦā§āĻāĻžāĻ¯āĻŧ, āĻ¤āĻāĻ¨ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ āĻŽāĻžāĻāĻ¨ā§āĻāĻāĻŋ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ āĻāĻ°ā§
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻ¸āĻš āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽā§āĻ° āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĨ¤ āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻ¸ āĻ āĻ¨ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ°āĨ¤
āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻ°āĻ āĻŦāĻŋāĻļā§āĻˇ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻ¸āĻŽāĻ°ā§āĻĨāĻ¨ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤ā§āĻ°ā§āĻāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻā§āĻ˛āĻŋ āĻĄāĻŋāĻāĻžāĻāĻ¸āĻāĻŋ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻŦā§ āĻŦāĻ˛ā§ āĻāĻļāĻž āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻ°āĨ¤
open(pathname = "/dev/fd0", O_RDWR, 0666) āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻĒāĻ āĻ¨āĻ¯ā§āĻā§āĻ¯ āĻĢāĻžāĻāĻ˛ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ (30, EROFS)
āĻāĻžāĻ°āĻŖ āĻĢā§āĻ˛āĻĒāĻŋ āĻĄāĻŋāĻ¸ā§āĻā§ āĻ°āĻžāĻāĻ āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻā§āĻ¯āĻžāĻŦ āĻ¸ā§āĻ āĻāĻā§
...āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻŋ CD-ROM āĻ˛ā§āĻāĻžāĻ° āĻ¯ā§āĻā§āĻ¯ āĻ¨āĻ¯āĻŧ
...āĻāĻžāĻ°āĻŖ āĻŽā§āĻŽāĻ°āĻŋ āĻāĻžāĻ°ā§āĻĄā§ āĻ°āĻžāĻāĻ āĻ¸ā§āĻ°āĻā§āĻˇāĻž āĻā§āĻ¯āĻžāĻŦ āĻ¸ā§āĻ āĻāĻā§
...āĻāĻžāĻ°āĻŖ ÂŊ āĻāĻā§āĻāĻŋ āĻŽā§āĻ¯āĻžāĻāĻ¨ā§āĻāĻŋāĻ āĻā§āĻĒā§ āĻ˛ā§āĻāĻžāĻ° āĻ°āĻŋāĻ āĻ¨ā§āĻ
āĻ¨āĻžāĻŽāĻžāĻ¨ā§āĻ¤āĻ°
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽāĻžāĻ¨ā§āĻ¤āĻ°(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻ āĻŦāĻ¸ā§āĻĨāĻžāĻ¨ āĻŦāĻž āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ, āĻāĻāĻŋ āĻ¸āĻ°āĻžāĻ¨ā§
āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻšāĻ˛ā§ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§āĨ¤ āĻ¯āĻĻāĻŋ āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻĒāĻĨā§āĻ° āĻ¨āĻžāĻŽāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĨāĻžāĻā§ āĻ¤āĻŦā§ āĻāĻāĻŋ āĻšāĻŦā§
āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¯āĻžāĻ¤ā§ āĻāĻŽāĻ¨ āĻā§āĻ¨ āĻŦāĻŋāĻ¨ā§āĻĻā§ āĻ¨āĻž āĻĨāĻžāĻā§ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻāĻŋ āĻ āĻ¨ā§āĻĒāĻ¸ā§āĻĨāĻŋāĻ¤ āĻā§āĻāĻā§ āĻĒāĻžāĻŦā§āĻ¨āĨ¤
āĻ¤āĻŦā§ āĻ¸ā§āĻŽāĻžāĻŦāĻĻā§āĻ§āĻ¤āĻž āĻ°āĻ¯āĻŧā§āĻā§: āĻāĻĒāĻ¨āĻŋ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨
āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¯āĻĻāĻŋ āĻāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻžāĻ˛āĻŋ āĻ¨āĻž āĻĨāĻžāĻā§āĨ¤
āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ(oldpath = "foo", newpath = "bar") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻāĻžāĻ˛āĻŋ āĻ¨āĻ¯āĻŧ (39,
ENOTEMPTY) āĻāĻžāĻ°āĻŖ newpath āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻ¯āĻŧ; āĻ āĻ°ā§āĻĨāĻžā§, āĻāĻ¤ā§ āĻāĻ¨ā§āĻā§āĻ°āĻŋ āĻ°āĻ¯āĻŧā§āĻā§
āĻāĻ° āĻ āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ "." āĻāĻŦāĻ ".."
āĻāĻĒāĻ¨āĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¨-āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻāĻĒāĻ°ā§ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋāĻ° āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°āĻŦā§āĻ¨ āĻ¨āĻžāĨ¤
āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ(oldpath = "foo", newpath = "bar") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻ¯āĻŧ (20, ENOTDIR)
āĻāĻžāĻ°āĻŖ oldpath āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ newpath āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛, āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻ¯āĻŧ
āĻŦāĻž āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤
āĻĒā§āĻ¨āĻāĻ¨āĻžāĻŽāĻāĻ°āĻŖ(oldpath = "foo", newpath = "bar") āĻŦā§āĻ¯āĻ°ā§āĻĨ āĻšāĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ (21, EISDIR)
āĻāĻžāĻ°āĻŖ newpath āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ, āĻāĻŋāĻ¨ā§āĻ¤ā§ oldpath āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻĢāĻžāĻāĻ˛, āĻāĻāĻāĻŋ āĻĄāĻŋāĻ°ā§āĻā§āĻāĻ°āĻŋ āĻ¨āĻ¯āĻŧ
āĻāĻāĻŋ āĻ āĻŦāĻļā§āĻ¯āĻ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻžāĻāĻā§ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§, āĻāĻžāĻ°āĻŖ
āĻ˛āĻŋāĻā§āĻāĻŽā§āĻā§āĻ¤(āĻāĻā§āĻ¸āĻāĻ¨āĻāĻŽāĻāĻā§āĻ¸) āĻŦāĻž āĻāĻžāĻā§ rmdir(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤āĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ āĻ¨āĻžāĻŽāĻžāĻ¨ā§āĻ¤āĻ°(2), āĻāĻŦāĻ āĻ¤āĻžāĻ āĻ¸āĻŦ
āĻ˛āĻŋāĻā§āĻāĻŽā§āĻā§āĻ¤(āĻāĻā§āĻ¸āĻāĻ¨āĻāĻŽāĻāĻā§āĻ¸) āĻŦāĻž āĻāĻžāĻā§ rmdir(2) āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž āĻāĻŦāĻļā§āĻ¯āĻ, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ.
dup2
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° dup2(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ āĻ¯āĻž āĻ°ā§āĻĢāĻžāĻ°ā§āĻ¨ā§āĻ¸ āĻāĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻāĻāĻ āĻŦāĻ¸ā§āĻ¤ā§āĨ¤ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻāĻāĻŋ āĻļā§āĻ˛ āĻāĻ¨āĻĒā§āĻ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻ¯āĻŧ
āĻāĻŦāĻ āĻāĻāĻāĻĒā§āĻ āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĨ¤
āĻŽāĻāĻžāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ° āĻšāĻ˛ā§, āĻ āĻŋāĻ āĻ¯ā§āĻŽāĻ¨ āĻ¨āĻžāĻŽāĻžāĻ¨ā§āĻ¤āĻ°(2) āĻĒāĻžāĻ°āĻŽāĻžāĻŖāĻŦāĻŋāĻāĻāĻžāĻŦā§ āĻāĻāĻāĻŋ āĻĢāĻžāĻāĻ˛ā§āĻ° āĻāĻĒāĻ°ā§ āĻ¨āĻžāĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĢāĻžāĻāĻ˛ āĻāĻŦāĻ āĻĒā§āĻ°āĻžāĻ¨ā§ āĻĢāĻžāĻāĻ˛ āĻ¸āĻ°āĻžāĻ¨, dup2(2) āĻāĻāĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻā§āĻ˛āĻž āĻĢāĻžāĻāĻ˛ā§ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĨ¤
āĻāĻŦāĻžāĻ°, āĻāĻāĻŋ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻāĻžāĻāĻā§ āĻāĻ°āĻ āĻāĻāĻŋāĻ˛ āĻāĻ°ā§ āĻ¤ā§āĻ˛ā§, āĻāĻžāĻ°āĻŖ āĻāĻ¨āĻŋāĻˇā§āĻ (2)
āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻ¨āĻŋāĻšāĻŋāĻ¤āĻāĻžāĻŦā§ āĻŦāĻ˛āĻž āĻšāĻ¯āĻŧ dup2(2), āĻāĻŦāĻ āĻ¤āĻžāĻ āĻ¸āĻŦ āĻāĻ¨āĻŋāĻˇā§āĻ (2) āĻāĻ° āĻ¤ā§āĻ°ā§āĻāĻŋ āĻšāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž āĻāĻŦāĻ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻž āĻāĻ°āĻž, āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋ.
āĻ ā§āĻ¯āĻžāĻĄāĻā§āĻā§āĻāĻžāĻ°āĻ¸ IN āĻāĻāĻāĻ¸āĻŋāĻāĻŋāĻāĻ˛ āĻ¸āĻžāĻĒā§āĻ°ā§āĻ
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ioctls(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸ āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ˛ā§āĻāĻāĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¯ā§āĻāĻžāĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻāĻāĻāĻŋ āĻāĻĒāĻžāĻ¯āĻŧ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§
āĻāĻāĻāĻžāĻ°-āĻ¸ā§āĻĒā§āĻ¸ āĻ¯āĻž āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ API-āĻāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻŽāĻžāĻĒāĻ¸āĻ āĻāĻ°ā§ āĻ¨āĻžāĨ¤ āĻĻā§āĻāĻž ioctl_list(2).
āĻĒāĻžāĻ ā§āĻĻā§āĻ§āĻžāĻ°āĻ¤āĻž āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻžāĻŽā§āĻŦāĻžāĻ°
āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°āĻ¸āĻāĻā§āĻˇā§āĻĒ āĻĨā§āĻā§ āĻĻā§āĻā§āĻ¨ ioctls(2) āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸, āĻāĻāĻāĻŋ āĻŦāĻĄāĻŧ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¸āĻ¸ā§āĻŽ āĻšāĻ¤ā§ āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻŋāĻ¤ āĻšāĻŦā§
āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻ¸āĻāĻā§āĻ¯āĻž ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§āĨ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻŋāĻ¨ā§āĻ¨ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻžāĻ°ā§āĻ¯āĻāĻ°āĻāĻžāĻŦā§
āĻ āĻ¨ā§āĻ¯ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻā§āĻ¨ā§ āĻĒā§āĻ°āĻāĻžāĻ°-āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻāĻžāĻĄāĻŧāĻžāĻ - āĻāĻŽā§āĻĒāĻžāĻāĻ˛āĻžāĻ° āĻ¸āĻžāĻšāĻžāĻ¯ā§āĻ¯ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻ¨āĻž
āĻĒā§āĻ°ā§āĻā§āĻ°āĻžāĻŽāĻžāĻ° āĻāĻ āĻ āĻ§āĻŋāĻāĻžāĻ° āĻĒā§āĻ¤ā§. āĻāĻ° āĻĒā§āĻāĻ¨ā§ āĻ¸āĻŽā§āĻāĻŦāĻ¤ āĻāĻāĻžāĻ āĻāĻŋāĻ˛ āĻĒā§āĻ°ā§āĻ°āĻŖāĻž tcflush(3) āĻāĻŦāĻ
āĻŦāĻ¨ā§āĻ§ā§āĻĻā§āĻ°āĨ¤
āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻ§āĻžāĻ°āĻŖāĻž āĻšāĻ˛ āĻ¯ā§ āĻāĻĒāĻ¨āĻŋ āĻĄāĻŋāĻā§āĻĄ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ ioctls(2) āĻāĻāĻāĻŋ āĻŦāĻŋāĻļāĻžāĻ˛ āĻ¸ā§āĻāĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§
āĻŦāĻŋāĻŦā§āĻ¤āĻŋ āĻāĻāĻŋ āĻ āĻ¸āĻŽā§āĻāĻžāĻŦā§āĻ¯ āĻšāĻ¤ā§ āĻĻā§āĻāĻž āĻ¯āĻžāĻā§āĻā§ āĻāĻžāĻ°āĻŖ āĻāĻāĻāĻ¨ āĻā§āĻŦ āĻĻā§āĻ°ā§āĻ¤ āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°ā§ āĻ¯ā§ āĻāĻāĻŋ
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻšā§āĻĄāĻžāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻāĻ°āĻž āĻ āĻ¸āĻŽā§āĻāĻŦ āĻ¯āĻž āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ ioctls(2)
āĻ āĻ¨ā§āĻ°ā§āĻ§, āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻĻā§āĻ° āĻāĻā§ āĻ āĻĒāĻ°ā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻ¨ā§āĻĻāĻ°āĻāĻžāĻŦā§ āĻā§āĻ˛āĻ¤ā§ āĻ āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻšāĻ¯āĻŧāĨ¤
āĻāĻāĻāĻŋ āĻāĻā§āĻ° āĻĻā§āĻˇā§āĻāĻŋāĻāĻā§āĻāĻŋ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§ āĻ¯ā§ "āĻŦā§āĻ¯āĻā§āĻ¤āĻŋāĻāĻ¤" āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ° āĻāĻŦāĻ āĻĄāĻŋāĻāĻžāĻāĻ¸ā§āĻ° āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻ¸āĻ° āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻĄā§āĻ°āĻžāĻāĻāĻžāĻ° āĻ˛ā§āĻāĻāĻĻā§āĻ° āĻ¤āĻžāĻĻā§āĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻ¤ā§āĻ¸āĻžāĻšāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§ āĻ āĻ¨ā§āĻ āĻŦāĻĄāĻŧ āĻ¸āĻŽā§āĻāĻŦ
āĻ āĻŦāĻŋāĻ˛āĻŽā§āĻŦā§ āĻ¸ā§āĻĒāĻˇā§āĻ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻā§āĻ¯āĻŧā§ āĻ āĻ¸ā§āĻĒāĻˇā§āĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ° āĻ¸āĻš āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ¸ā§āĻāĨ¤ āĻāĻāĻžāĻĄāĻŧāĻžāĻ,
āĻāĻŋāĻā§ āĻāĻ¤āĻŋāĻšāĻžāĻ¸āĻŋāĻ āĻ āĻ¸ā§āĻĒāĻˇā§āĻāĻ¤āĻžāĻ āĻāĻā§āĨ¤
āĻāĻŽāĻ°āĻž āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻāĻžāĻ¨āĻ¤āĻžāĻŽ āĻ¯ā§ āĻ¸ā§āĻāĻāĻāĻŋ āĻ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻāĻŋāĻ˛, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻ¨ āĻāĻŽāĻ°āĻž āĻāĻžāĻ¨āĻŋ āĻ¯ā§ āĻāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°āĻ¤ā§
āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻ¨āĻžāĻŽ āĻāĻŦāĻ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¨āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ° āĻāĻŋāĻ¨ā§āĻ¤ā§
āĻāĻāĻžāĻĄāĻŧāĻžāĻ āĻĢāĻžāĻāĻ˛ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĨ¤
āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ ioctls(2) libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻ¸āĻžāĻĒā§āĻ°ā§āĻ āĻāĻ° āĻāĻāĻāĻŋ āĻā§āĻŦāĻŋāĻ˛ āĻāĻā§
āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ ioctls(2) āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻ āĻŦāĻ°ā§āĻŖāĻ¨āĻžāĻāĻžāĻ°ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻāĻāĻŋ āĻāĻā§āĻāĻŋāĻ āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤
āĻāĻāĻāĻŋ āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻ¤āĻž āĻ¨āĻŋāĻ°āĻ¸āĻ¨ āĻĢāĻžāĻāĻļāĻ¨ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻ.
āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ āĻĒā§āĻĨāĻ āĻā§āĻ¸ āĻĢāĻžāĻāĻ˛ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻšāĻ¯āĻŧ, āĻ¯āĻžāĻ¤ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ
āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻā§āĻā§āĻ¤ āĻĢāĻžāĻāĻ˛āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻ¯āĻĻā§āĻ° āĻ¸āĻžāĻĨā§ āĻ¸ā§āĻ¨ā§āĻĻāĻ°āĻāĻžāĻŦā§ āĻā§āĻ˛āĻžāĻ° āĻŦāĻžāĻ§ā§āĻ¯āĻŦāĻžāĻ§āĻāĻ¤āĻž āĻĨā§āĻā§ āĻŽā§āĻā§āĻ¤āĻŋ āĻĒāĻžāĻ¯āĻŧāĨ¤
āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ
libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° āĻĒāĻŋāĻāĻ¨ā§ āĻĻāĻ°ā§āĻļāĻ¨ āĻ¯āĻ¤āĻāĻž āĻ¤āĻĨā§āĻ¯ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧ
āĻ¸āĻŽā§āĻāĻŦ, āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻ¸āĻšāĨ¤ āĻāĻ° āĻŦā§āĻ¯āĻžāĻĒāĻžāĻ°ā§
ioctls(2) āĻāĻ° āĻ āĻ°ā§āĻĨ āĻ¸āĻ āĻŋāĻ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ° (āĻ¨āĻžāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž) āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ¸āĻ āĻŋāĻ (āĻŦāĻž
āĻ āĻ¨ā§āĻ¤āĻ¤ āĻĻāĻ°āĻāĻžāĻ°ā§) āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĨ¤
āĻ¸āĻžāĻ°ā§āĻāĻžāĻ°āĻŋāĻ° ioctls(2) āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻāĻ āĻŽāĻ¤ āĻĻā§āĻāĻžāĻ¯āĻŧ:
int ioctl(int fildes, int āĻ āĻ¨ā§āĻ°ā§āĻ§, ...);
āĻ¯āĻž āĻāĻĒāĻ¨āĻžāĻ° āĻāĻžāĻāĻĒ-āĻ¸ā§āĻĢāĻāĻŋ āĻ ā§āĻ¯āĻžāĻ˛āĻžāĻ°ā§āĻŽ āĻŦāĻ¨ā§āĻ§ āĻāĻ°āĻž āĻāĻāĻŋāĻ¤āĨ¤ [e]glibc-āĻāĻ° āĻ āĻā§āĻ¯āĻ¨ā§āĻ¤āĻ°ā§āĻŖ, āĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŖāĻ¤ āĻšāĻ¯āĻŧā§āĻā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻāĻžāĻ°ā§:
int __ioctl(int fildes, int request, long arg);
int __ioctl(int fildes, int āĻ āĻ¨ā§āĻ°ā§āĻ§, void *arg);
āĻāĻŦāĻ āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻ¸āĻŋāĻ¸ā§āĻāĻ˛ āĻāĻ¨ā§āĻāĻžāĻ°āĻĢā§āĻ¸ āĻāĻļāĻž āĻāĻ°ā§
asmlinkage āĻ˛āĻ sys_ioctl(āĻ āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŋāĻ¤ int āĻĢāĻŋāĻ˛ā§āĻĄāĻ¸, āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ int āĻ āĻ¨ā§āĻ°ā§āĻ§, āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ āĻĻā§āĻ°ā§āĻ
arg);
āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻāĻ°āĻŽ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻļā§āĻ˛āĻ¤āĻž āĻāĻāĻāĻŋ āĻā§āĻ¯āĻžāĻ˛ā§āĻā§āĻ, āĻ¯āĻāĻ¨ libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋ
āĻ¯ā§ āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻ¯ā§āĻā§āĻ¤āĻŋ āĻāĻāĻāĻŋ āĻāĻĒāĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻž āĻŽā§āĻĻā§āĻ°āĻŖ āĻāĻ°āĻžāĻ° āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§. āĻ¤āĻŦā§ āĻāĻāĻŦāĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ°
āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° ioctl āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ¤ā§ āĻāĻāĻāĻŋ āĻāĻā§
āĻāĻžāĻ¸ā§āĻāĻŽ āĻĒā§āĻ°āĻŋāĻ¨ā§āĻ_āĻĄā§āĻāĻž āĻĢāĻžāĻāĻļāĻ¨ (āĻāĻ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§)āĨ¤
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖā§ āĻāĻŽ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻā§āĨ¤ āĻāĻāĻŦāĻžāĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¨āĻŽā§āĻŦāĻ°
āĻĻā§āĻŦā§āĻ¯āĻ°ā§āĻĨāĻšā§āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, libexplain āĻ˛āĻžāĻāĻŦā§āĻ°ā§āĻ°āĻŋāĻ° ioctl āĻā§āĻŦāĻŋāĻ˛ā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻāĻ¨ā§āĻā§āĻ°āĻŋāĻ° āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻāĻā§
print_explanation āĻĢāĻžāĻāĻļāĻ¨ (āĻāĻŦāĻžāĻ°, OO āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§)āĨ¤
āĻ¸ā§āĻāĻļāĻ¨ 2 āĻāĻŦāĻ āĻ¸ā§āĻāĻļāĻ¨ 3 āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻŦāĻŋāĻĒāĻ°ā§āĻ¤ā§, āĻŦā§āĻļāĻŋāĻ°āĻāĻžāĻ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§ā§ āĻā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¨ā§āĻ
āĻ¨āĻĨāĻŋāĻā§āĻā§āĻ¤ āĻāĻ° āĻŽāĻžāĻ¨ā§, āĻāĻžāĻ˛ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻŦāĻŋāĻŦāĻ°āĻŖ āĻĻāĻŋāĻ¤ā§, āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§
āĻāĻŦāĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ¸
¡ āĻāĻŋ āĻā§āĻ˛(3) āĻŽāĻžāĻ¨ āĻĢā§āĻ°āĻ¤ āĻĻā§āĻāĻ¯āĻŧāĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§, āĻāĻŦāĻ
¡ āĻĒā§āĻ°āĻ¤āĻŋāĻāĻŋ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖāĨ¤
āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻ¸āĻžāĻĨā§ āĻĢāĻžāĻāĻļāĻ¨ āĻāĻ˛ āĻĒā§āĻ°ā§āĻ°āĻŖā§āĻ° OO āĻĒā§āĻ°āĻā§āĻ¤āĻŋāĻ° āĻāĻžāĻ°āĻŖā§, āĻāĻĒāĻ¨āĻžāĻā§ āĻĒāĻĄāĻŧāĻ¤ā§ āĻšāĻŦā§
āĻ¸āĻŦ āĻ¸ā§āĻ¤ā§āĻ° āĻ¯ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§, āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ¨āĻ¯āĻŧāĨ¤ āĻāĻāĻž
āĻāĻļāĻž āĻāĻ°āĻž āĻ¯āĻžāĻ¯āĻŧ āĻ¯ā§ āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋ āĻ¸āĻāĻā§āĻ¯āĻž āĻāĻŦāĻ āĻ¸ā§āĻā§āĻˇā§āĻŽāĻāĻžāĻŦā§ āĻĨāĻžāĻāĻŦā§
āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻāĻžāĻ°āĻŖāĨ¤
EINVAL vs āĻāĻ¨ā§āĻāĻŋ
āĻāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋ āĻāĻ°āĻ āĻāĻžāĻ°āĻžāĻĒ ioctls(2) āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ā§āĻ° āĻā§āĻ¯āĻŧā§ āĻ āĻ¨ā§āĻ°ā§āĻ§, EINVAL āĻāĻŦāĻ āĻ¸āĻš
ENOTTY āĻāĻāĻ¯āĻŧāĻ āĻāĻā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻŦā§āĻ¯āĻŦāĻšā§āĻ¤ āĻšāĻā§āĻā§ āĻ¯ā§ āĻāĻāĻāĻŋ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ¯ā§ āĻ āĻ¨ā§āĻĒāĻ¯ā§āĻā§āĻ¤
āĻĒā§āĻ°āĻ¸āĻā§āĻ, āĻāĻŦāĻ āĻŽāĻžāĻā§ āĻŽāĻžāĻā§ ENOSYS, ENOTSUP āĻāĻŦāĻ EOPNOTSUPP (āĻ¸āĻā§āĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧ) āĻšāĻŋāĻ¸āĻžāĻŦā§
āĻāĻŽāĻ°āĻž āĻšāĻŦ. āĻ˛āĻŋāĻ¨āĻžāĻā§āĻ¸ āĻāĻžāĻ°ā§āĻ¨ā§āĻ˛ āĻāĻ¤ā§āĻ¸āĻā§āĻ˛āĻŋāĻ¤ā§ āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯ āĻ°āĻ¯āĻŧā§āĻā§ āĻ¯āĻž āĻāĻāĻāĻŋ āĻĒā§āĻ°āĻāĻ¤āĻŋāĻļā§āĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°ā§ āĻŦāĻ˛ā§ āĻŽāĻ¨ā§ āĻšāĻā§āĻā§
āĻĒāĻ°āĻŋāĻˇā§āĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻā§āĻā§āĨ¤ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻŦāĻŋāĻļā§āĻā§āĻāĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻŦāĻŋāĻāĻ¸āĻĄāĻŋ āĻŦāĻŋāĻā§āĻ°āĻžāĻ¨ā§āĻ¤āĻŋāĻ¤ā§ ENOIOCTL āĻ¯ā§āĻ āĻāĻ°ā§āĨ¤
āĻĢāĻ˛āĻ¸ā§āĻŦāĻ°ā§āĻĒ, āĻāĻ āĻ¤ā§āĻ°ā§āĻāĻŋāĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻŽāĻ¨ā§āĻ¯ā§āĻ āĻĻāĻŋāĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻžāĻ¤ā§ āĻ¸ā§āĻā§āĻ˛āĻŋ āĻ¸āĻ āĻŋāĻ āĻšāĻ¯āĻŧ, āĻŦāĻŋāĻļā§āĻˇ āĻāĻ°ā§ā§ˇ
āĻ¯ā§āĻšā§āĻ¤ā§ EINVAL āĻāĻ āĻŦāĻž āĻāĻāĻžāĻ§āĻŋāĻ āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ āĻāĻ˛ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻā§āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻ° āĻāĻĨāĻžāĻ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤
intptr_t
C99 āĻ¸ā§āĻā§āĻ¯āĻžāĻ¨ā§āĻĄāĻžāĻ°ā§āĻĄ āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻžāĻ° āĻ§āĻ°āĻŖāĻā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻāĻ°ā§ āĻ¯āĻž āĻ¯ā§ āĻā§āĻ¨ā§ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻ§āĻ°ā§ āĻ°āĻžāĻāĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻŦā§
āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻā§āĻˇāĻ¤āĻŋ āĻāĻžāĻĄāĻŧāĻžāĨ¤
āĻāĻĒāĻ°ā§āĻ° āĻĢāĻžāĻāĻļāĻ¨ syscall āĻĒā§āĻ°ā§āĻā§āĻāĻžāĻāĻĒ āĻāĻžāĻ˛ āĻ˛ā§āĻāĻž āĻšāĻŦā§
long sys_ioctl(āĻāĻ¨āĻ¸āĻžāĻāĻ¨ āĻāĻ°āĻž int āĻĢāĻŋāĻ˛ā§āĻĄāĻ¸, āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ int āĻ āĻ¨ā§āĻ°ā§āĻ§, intptr_t arg);
āĻ¸āĻŽāĻ¸ā§āĻ¯āĻžāĻāĻŋ āĻšāĻ˛ āĻĄāĻŋāĻāĻžāĻāĻ¸-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻŦāĻž āĻĢāĻžāĻāĻ˛-āĻ¸āĻŋāĻ¸ā§āĻā§āĻŽ-āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻŋāĻ¤ āĻā§āĻāĻžāĻ¨ā§āĻ¯āĻŧ āĻ āĻ¸āĻā§āĻāĻ¤āĻŋ
ioctls(2) āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨, āĻ¯ā§āĻŽāĻ¨:
long vfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
āĻ¸āĻāĻā§āĻ¯āĻžāĻāĻ°āĻŋāĻˇā§āĻ ioctls(2) āĻ āĻ¨ā§āĻ°ā§āĻ§ā§āĻ° āĻāĻ¸āĻ˛ā§ āĻāĻāĻāĻŋ int * arg āĻ¤ā§āĻ¤ā§āĻ¯āĻŧ āĻāĻ°ā§āĻā§āĻŽā§āĻ¨ā§āĻ āĻāĻā§āĨ¤ āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻāĻž āĻĨāĻžāĻāĻžāĻ°
āĻā§āĻˇāĻŋāĻ¤ āĻ˛āĻ āĻ˛āĻŋāĻĄ āĻā§āĻĄā§ āĻāĻāĻŋāĻā§ āĻ˛āĻ *āĻāĻ°ā§āĻ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°ā§āĨ¤ āĻāĻāĻŋ 32-āĻŦāĻŋāĻā§ āĻ¨āĻŋāĻ°ā§āĻš
(sizeof(long) == sizeof(int)) āĻāĻŋāĻ¨ā§āĻ¤ā§ 64-āĻŦāĻŋāĻā§ āĻāĻžāĻ°āĻžāĻĒ (sizeof(long) != sizeof(int))āĨ¤
āĻ āĻ¨ā§āĻ¤āĻŋāĻŽāĻ¤āĻžāĻ° āĻāĻĒāĻ° āĻ¨āĻŋāĻ°ā§āĻāĻ° āĻāĻ°ā§, āĻāĻĒāĻ¨āĻŋ āĻ¯ā§ āĻŽāĻžāĻ¨ āĻāĻļāĻž āĻāĻ°ā§āĻ¨ āĻ¤āĻž āĻāĻĒāĻ¨āĻŋ āĻāĻ°ā§āĻ¨ āĻŦāĻž āĻĒāĻžāĻ¨ āĻ¨āĻž, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻĒāĻ¨āĻŋ āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻĒāĻžāĻāĻ¯āĻŧāĻž
āĻāĻāĻāĻŋ āĻŽā§āĻŽāĻ°āĻŋ āĻ¸ā§āĻā§āĻ°āĻžāĻāĻŦāĻ˛ āĻŦāĻž āĻ¸ā§āĻā§āĻ¯āĻžāĻ āĻ¸ā§āĻā§āĻ°āĻŋāĻŦāĻ˛ āĻĒāĻžāĻļāĻžāĻĒāĻžāĻļāĻŋāĨ¤
āĻāĻ āĻ¸āĻŦ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ˛ā§āĻāĻž
int ioctl(int fildes, int āĻ āĻ¨ā§āĻ°ā§āĻ§, ...);
int __ioctl(int fildes, int āĻ āĻ¨ā§āĻ°ā§āĻ§, intptr_t arg);
long sys_ioctl(āĻāĻ¨āĻ¸āĻžāĻāĻ¨ āĻāĻ°āĻž int āĻĢāĻŋāĻ˛ā§āĻĄāĻ¸, āĻ¸ā§āĻŦāĻžāĻā§āĻˇāĻ°āĻŦāĻŋāĻšā§āĻ¨ int āĻ āĻ¨ā§āĻ°ā§āĻ§, intptr_t arg);
long vfs_ioctl(struct file *filp, unsigned int cmd, intptr_t arg);
āĻā§āĻ° āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻāĻāĻŋ āĻĒā§āĻ°ā§āĻŖāĻ¸āĻāĻā§āĻ¯āĻž āĻ¯āĻž āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖā§āĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°ā§
āĻ¸āĻ°ā§āĻŦāĻĻāĻž āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻ°ā§āĻāĻšā§āĻ¨ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻāĻžāĻ° āĻāĻžāĻāĻĒāĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
libexplain āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ°āĻž āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŦā§āĨ¤
āĻāĻĒāĻŋāĻ°āĻžāĻāĻ
libexplain āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ 1.4
āĻāĻĒāĻŋāĻ°āĻžāĻāĻ (āĻ¸āĻŋ) 2008, 2009, 2010, 2011, 2012, 2013, 2014 āĻĒāĻŋāĻāĻžāĻ° āĻŽāĻŋāĻ˛āĻžāĻ°
onworks.net āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž_lca2010 āĻ āĻ¨āĻ˛āĻžāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻ¨