āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻāĻĒāĻŋāĻ†āĻ‡ āĻŦāĻ‡āĨ¤ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻžÂģ


āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻāĻĒāĻŋāĻ†āĻ‡ āĻŦāĻ‡āĨ¤ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻžÂģ

āĻļā§āĻ­ āĻ…āĻĒāĻ°āĻžāĻšā§āĻ¨ āĻ†āĻŽāĻŋ "āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ API" āĻŦāĻ‡āĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¨āĻœāĻ°ā§‡ āĻāĻ¨ā§‡āĻ›āĻŋāĨ¤ āĻŦā§āĻ¯āĻžāĻĒāĻ• āĻ¨āĻŋāĻ°ā§āĻĻā§‡āĻļāĻŋāĻ•āĻž "(āĻŦāĻ‡āĻŸāĻŋāĻ° āĻ…āĻ¨ā§āĻŦāĻžāĻĻ āĻ˛āĻŋāĻ¨āĻžāĻ•ā§āĻ¸ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŋāĻ‚ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻĢā§‡āĻ¸) āĻāĻŸāĻŋ āĻĒā§āĻ°āĻ•āĻžāĻļāĻ•ā§‡āĻ° āĻ“āĻ¯āĻŧā§‡āĻŦāĻ¸āĻžāĻ‡āĻŸā§‡ āĻ…āĻ°ā§āĻĄāĻžāĻ° āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻāĻŦāĻ‚ āĻ¯āĻĻāĻŋ āĻ†āĻĒāĻ¨āĻŋ āĻĒā§āĻ°āĻšāĻžāĻ° āĻ•ā§‹āĻĄ āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡āĻ¨ LinuxAPI āĻ†āĻĒāĻ¨āĻŋ 30% āĻĄāĻŋāĻ¸āĻ•āĻžāĻ‰āĻ¨ā§āĻŸ āĻĒāĻžāĻŦā§‡āĻ¨āĨ¤

āĻĒāĻ°ā§āĻ¯āĻžāĻ˛ā§‹āĻšāĻ¨āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻ‡ āĻĨā§‡āĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻā§āĻ§ā§ƒāĻ¤āĻŋ:

āĻ¸āĻ•ā§‡āĻŸ: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ°

āĻāĻ‡ āĻ…āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§‡, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻžāĻ° āĻŽā§‚āĻ˛ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻ—ā§āĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧā§‡ āĻ†āĻ˛ā§‹āĻšāĻ¨āĻž āĻ•āĻ°āĻŦ, āĻ¸ā§‡āĻ‡āĻ¸āĻžāĻĨā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻŋāĻļā§‡āĻˇ inetd āĻĄā§‡āĻŽāĻ¨ āĻ¯āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°-āĻ¸āĻžāĻ‡āĻĄ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ āĻ¤ā§ˆāĻ°āĻŋāĻ° āĻ¸ā§āĻŦāĻŋāĻ§āĻž āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°

āĻĻā§āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻ¸āĻ•ā§‡āĻŸ-āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋāĻ• āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ°āĻ¯āĻŧā§‡āĻ›ā§‡:

  • āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ•: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°ā§‡, āĻĒā§āĻ°āĻĨāĻŽā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ (āĻŦāĻž āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§) āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°ā§‡ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ°ā§‡ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€āĻ¤ā§‡ āĻšāĻ˛ā§‡ āĻ¯āĻžāĻ¯āĻŧ;

  • āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛: āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻŦāĻŋāĻ­āĻžāĻ— 44.8 āĻ‡āĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§‡ FIFO āĻ¸āĻžāĻ°āĻŋāĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻ•āĻ°ā§‡āĻ›ā§‡āĨ¤

āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖāĻ¤ āĻ•ā§‡āĻŦāĻ˛āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§‡āĻ‡ āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ¤ā§‡ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ…āĻ¨ā§āĻ°ā§‹āĻ§āĻ—ā§āĻ˛āĻŋ āĻŽā§‹āĻŸāĻžāĻŽā§āĻŸāĻŋ āĻĻā§āĻ°ā§āĻ¤ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡, āĻ•āĻžāĻ°āĻŖ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻ¯āĻŧ āĻ¯āĻ¤āĻ•ā§āĻˇāĻŖ āĻ¨āĻž āĻāĻŸāĻŋāĻ° āĻ¸āĻžāĻŽāĻ¨ā§‡ āĻĨāĻžāĻ•āĻž āĻ…āĻ¨ā§āĻ¯ āĻ•ā§‹āĻ¨āĻ“ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻĒāĻĻā§āĻ§āĻ¤āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°ā§‡āĻ° āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻāĻ•āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻāĻ•āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŽāĻ§ā§āĻ¯ā§‡ āĻāĻ•āĻ• āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻāĻŦāĻ‚ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻŦāĻŋāĻ¨āĻŋāĻŽāĻ¯āĻŧ āĻ•āĻ°āĻžāĨ¤

āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻ¸ā§‡āĻ‡ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡ āĻ‰āĻĒāĻ¯ā§āĻ•ā§āĻ¤ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ…āĻ¨ā§āĻ°ā§‹āĻ§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻ‰āĻ˛ā§āĻ˛ā§‡āĻ–āĻ¯ā§‹āĻ—ā§āĻ¯ āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻ—ā§‡, āĻŦāĻž āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĻā§€āĻ°ā§āĻ˜ āĻ†āĻĻāĻžāĻ¨ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻšāĻ¯āĻŧāĨ¤ āĻāĻ‡ āĻ…āĻ§ā§āĻ¯āĻžāĻ¯āĻŧā§‡, āĻ†āĻŽāĻ°āĻž āĻĒā§āĻ°āĻ§āĻžāĻ¨āĻ¤ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĄāĻŋāĻœāĻžāĻ‡āĻ¨ āĻ•āĻ°āĻžāĻ° āĻāĻ¤āĻŋāĻšā§āĻ¯āĻ—āĻ¤ (āĻāĻŦāĻ‚ āĻ¸āĻŦāĻšā§‡āĻ¯āĻŧā§‡ āĻ¸āĻšāĻœ) āĻ‰āĻĒāĻžāĻ¯āĻŧā§‡āĻ° āĻ‰āĻĒāĻ° āĻĢā§‹āĻ•āĻžāĻ¸ āĻ•āĻ°āĻŦ, āĻ¯āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻļāĻŋāĻļā§ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻžāĨ¤ āĻāĻ‡ āĻ§āĻ°āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻžāĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¯āĻžāĻ° āĻĒāĻ°ā§‡ āĻāĻŸāĻŋ āĻļā§‡āĻˇ āĻšāĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻ‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ¸ā§āĻŦāĻžāĻ§ā§€āĻ¨āĻ­āĻžāĻŦā§‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡, āĻ¤āĻžāĻ‡ āĻāĻ•āĻ‡ āĻ¸āĻŽāĻ¯āĻŧā§‡ āĻāĻ•āĻžāĻ§āĻŋāĻ• āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻĒāĻ°āĻŋāĻŦā§‡āĻļāĻ¨ āĻ•āĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĨ¤ āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ•āĻžāĻœ (āĻĒāĻŋāĻ¤āĻžāĻŽāĻžāĻ¤āĻž) āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻāĻ•āĻŸāĻŋ āĻĒā§ƒāĻĨāĻ• āĻ¸āĻ¨ā§āĻ¤āĻžāĻ¨ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž (āĻŦāĻŋāĻ•āĻ˛ā§āĻĒāĻ­āĻžāĻŦā§‡, āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤ā§‡, āĻ†āĻĒāĻ¨āĻŋ āĻ¸āĻŽā§āĻĒāĻžāĻĻāĻ¨ā§‡āĻ° āĻĨā§āĻ°ā§‡āĻĄ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡āĻ¨)āĨ¤

āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡, āĻ†āĻŽāĻ°āĻž āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻĄā§‹āĻŽā§‡āĻ¨ āĻ¸āĻ•ā§‡āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ• āĻāĻŦāĻ‚ āĻ¸āĻŽāĻžāĻ¨ā§āĻ¤āĻ°āĻžāĻ˛ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋāĻ° āĻ‰āĻĻāĻžāĻšāĻ°āĻŖāĻ—ā§āĻ˛āĻŋ āĻĻā§‡āĻ–āĻŦāĨ¤ āĻāĻ‡ āĻĻā§āĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ‡āĻ•ā§‹ āĻ¸āĻžāĻ°ā§āĻ­āĻŋāĻ¸ (RFC 862) āĻāĻ° āĻāĻ•āĻŸāĻŋ āĻ¸āĻ°āĻ˛ā§€āĻ•ā§ƒāĻ¤ āĻ¸āĻ‚āĻ¸ā§āĻ•āĻ°āĻŖ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻ•āĻ°ā§‡ āĻ¯āĻž āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°ā§‡āĻ°āĻŋāĻ¤ āĻ¯ā§‡āĻ•ā§‹āĻ¨ā§‹ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤

āĻ‡āĻ•ā§‹ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ‡āĻ‰āĻĄāĻŋāĻĒāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°

āĻāĻ‡ āĻāĻŦāĻ‚ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§€ āĻŦāĻŋāĻ­āĻžāĻ—ā§‡, āĻ†āĻŽāĻ°āĻž āĻ‡āĻ•ā§‹ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ—ā§āĻ˛āĻŋ āĻĒā§āĻ°āĻŦāĻ°ā§āĻ¤āĻ¨ āĻ•āĻ°āĻŦāĨ¤ āĻāĻŸāĻŋ 7 āĻ¨āĻŽā§āĻŦāĻ° āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻ‰āĻĒāĻ˛āĻŦā§āĻ§ āĻāĻŦāĻ‚ āĻāĻŸāĻŋ UDP āĻāĻŦāĻ‚ TCP āĻ‰āĻ­āĻ¯āĻŧ āĻ•ā§āĻˇā§‡āĻ¤ā§āĻ°ā§‡āĻ‡ āĻ•āĻžāĻœ āĻ•āĻ°ā§‡ (āĻāĻ‡ āĻĒā§‹āĻ°ā§āĻŸāĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤, āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ‡āĻœāĻ¨ā§āĻ¯ āĻ‡āĻ•ā§‹ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ§āĻŋāĻ•āĻžāĻ°ā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻšāĻžāĻ˛āĻžāĻ¨ā§‹ āĻ†āĻŦāĻļā§āĻ¯āĻ•)āĨ¤

āĻ‡āĻ•ā§‹ āĻ‡āĻ‰āĻĄāĻŋāĻĒāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•ā§āĻ°āĻŽāĻžāĻ—āĻ¤ āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻĒāĻĄāĻŧā§‡ āĻāĻŦāĻ‚ āĻ¸ā§‡āĻ—ā§āĻ˛āĻŋāĻ° āĻāĻ•āĻŸāĻŋ āĻ…āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻĒā§āĻ°ā§‡āĻ°āĻ•ā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻĢā§‡āĻ°āĻ¤ āĻĻā§‡āĻ¯āĻŧāĨ¤ āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻ•ā§‡ āĻāĻ•āĻŦāĻžāĻ°ā§‡ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻĒā§āĻ°āĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ•āĻ°āĻ¤ā§‡ āĻšāĻŦā§‡, āĻ¤āĻžāĻ‡ āĻāĻ–āĻžāĻ¨ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋāĻŽā§‚āĻ˛āĻ• āĻ†āĻ°ā§āĻ•āĻŋāĻŸā§‡āĻ•āĻšāĻžāĻ° āĻ¯āĻĨā§‡āĻˇā§āĻŸ āĻšāĻŦā§‡āĨ¤ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 56.1-XNUMX āĻ āĻĻā§‡āĻ–āĻžāĻ¨ā§‹ āĻšāĻ¯āĻŧā§‡āĻ›ā§‡āĨ¤

āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 56.1. id_echo_sv.c āĻāĻŦāĻ‚ id_echo_cl.c āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋāĻ° āĻœāĻ¨ā§āĻ¯ āĻšā§‡āĻĄāĻžāĻ° āĻĢāĻžāĻ‡āĻ˛

#include "inet_sockets.h" /* āĻ†āĻŽāĻžāĻĻā§‡āĻ° āĻ¸āĻ•ā§‡āĻŸ āĻĢāĻžāĻ‚āĻļāĻ¨ āĻ˜ā§‹āĻˇāĻŖāĻž āĻ•āĻ°ā§‡ */
# "tlpi_hdr.h" āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨

#āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ "āĻ‡āĻ•ā§‹" /* UDP āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻ¨āĻžāĻŽ */

# āĻ¸āĻ‚āĻœā§āĻžāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻ•āĻ°ā§āĻ¨ BUF_SIZE 500 /* āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽā§‡āĻ° āĻ¸āĻ°ā§āĻŦāĻžāĻ§āĻŋāĻ• āĻ†āĻ•āĻžāĻ° āĻ¯āĻž
āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻŦāĻ‚ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒāĻĄāĻŧāĻž āĻ¯ā§‡āĻ¤ā§‡ āĻĒāĻžāĻ°ā§‡ */
________________________________________________________________________ āĻ¸āĻ•ā§‡āĻŸ/id_echo.h

56.2-XNUMX āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻ¨ āĻĻā§‡āĻ–āĻžāĻ¯āĻŧāĨ¤ āĻāĻŸāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻ–āĻŋāĻ¤ āĻĒāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ˛āĻ•ā§āĻˇāĻ¨ā§€āĻ¯āĻŧ āĻŽā§‚āĻ˛ā§āĻ¯:

  • āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋāĻ•ā§‡ āĻĄā§‡āĻŽāĻ¨ āĻŽā§‹āĻĄā§‡ āĻ°āĻžāĻ–āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¸ā§‡āĻ•āĻļāĻ¨ 37.2 āĻĨā§‡āĻ•ā§‡ becomeDaemon() āĻĢāĻžāĻ‚āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ;

  • āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽāĻŸāĻŋāĻ•ā§‡ āĻ†āĻ°āĻ“ āĻ•āĻŽāĻĒā§āĻ¯āĻžāĻ•ā§āĻŸ āĻ•āĻ°āĻ¤ā§‡, āĻ†āĻŽāĻ°āĻž 55.12 āĻ¸ā§‡āĻ•āĻļāĻ¨ā§‡ āĻ¤ā§ˆāĻ°āĻŋ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻĄā§‹āĻŽā§‡āĻ‡āĻ¨ āĻ¸āĻ•ā§‡āĻŸ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋ;

  • āĻ¯āĻĻāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§‡ āĻ¨āĻž āĻĒāĻžāĻ°ā§‡, āĻ¤āĻžāĻšāĻ˛ā§‡ āĻāĻŸāĻŋ syslog() āĻ•āĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛āĻ—ā§‡ āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ°ā§āĻ¤āĻž āĻ˛ā§‡āĻ–ā§‡āĨ¤

āĻāĻ•āĻŸāĻŋ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻ…ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻ•ā§‡āĻļāĻ¨ā§‡, āĻ†āĻŽāĻ°āĻž āĻ¸āĻŽā§āĻ­āĻŦāĻ¤ syslog() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡ āĻ˛āĻ—āĻŋāĻ‚ āĻŦāĻžāĻ°ā§āĻ¤āĻžāĻ—ā§āĻ˛āĻŋāĻ° āĻĢā§āĻ°āĻŋāĻ•ā§‹āĻ¯āĻŧā§‡āĻ¨ā§āĻ¸āĻŋāĻ° āĻ‰āĻĒāĻ° āĻāĻ•āĻŸāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻŸ āĻ¸ā§€āĻŽāĻž āĻ†āĻ°ā§‹āĻĒ āĻ•āĻ°āĻŦāĨ¤ āĻāĻŸāĻŋ āĻāĻ•āĻŸāĻŋ āĻ†āĻ•ā§āĻ°āĻŽāĻŖāĻ•āĻžāĻ°ā§€āĻ° āĻ¸āĻŋāĻ¸ā§āĻŸā§‡āĻŽ āĻ˛āĻ— āĻ‰āĻĒāĻšā§‡ āĻĒāĻĄāĻŧāĻžāĻ° āĻ¸āĻŽā§āĻ­āĻžāĻŦāĻ¨āĻž āĻĻā§‚āĻ° āĻ•āĻ°āĻŦā§‡ā§ˇ āĻāĻ›āĻžāĻĄāĻŧāĻžāĻ“, āĻŽāĻ¨ā§‡ āĻ°āĻžāĻ–āĻŦā§‡āĻ¨ āĻ¯ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ syslog() āĻ•āĻ˛ āĻŦā§‡āĻļ āĻŦā§āĻ¯āĻ¯āĻŧāĻŦāĻšā§āĻ˛, āĻ¯ā§‡āĻšā§‡āĻ¤ā§ āĻāĻŸāĻŋ āĻĄāĻŋāĻĢāĻ˛ā§āĻŸāĻ°ā§‚āĻĒā§‡ fsync() āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤

āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 56.2. āĻāĻ•āĻŸāĻŋ āĻĒā§āĻ¨āĻ°āĻžāĻŦā§ƒāĻ¤ā§āĻ¤āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¯āĻž āĻ‡āĻ•ā§‹ UDP āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻž āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻ— āĻ•āĻ°ā§‡

_____________________________________________________________________ āĻ¸āĻ•ā§‡āĻŸ/id_echo_sv.c
#āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤
# "id_echo.h" āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨
# āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨ "become_daemon.h"

āĻ•ā§‹āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
int sfd;
ssize_t numRead;
socklen_tlen;
struct sockaddr_storage claddr;
charbuf[BUF_SIZE];
char addrStr[IS_ADDR_STR_LEN];

āĻ¯āĻĻāĻŋ (āĻĄā§‡āĻŽāĻ¨ āĻšāĻ¯āĻŧā§‡ āĻ¯āĻžāĻ¯āĻŧ (0) == -1)
errExit("becomeDaemon");

sfd = inetBind(SERVICE, SOCK_DGRAM, NULL);
āĻ¯āĻĻāĻŋ (sfd == -1) {
syslog(LOG_ERR, "āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻ•ā§‡āĻŸ āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ (%s)",
strerror(errno));
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ (EXIT_FAILURE);

/* āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻ—ā§āĻ°āĻšāĻŖ āĻ•āĻ°ā§āĻ¨ āĻāĻŦāĻ‚ āĻĒā§āĻ°ā§‡āĻ°āĻ•āĻĻā§‡āĻ° āĻ•āĻžāĻ›ā§‡ āĻ•āĻĒāĻŋ āĻĢā§‡āĻ°āĻ¤ āĻĻāĻŋāĻ¨ */
}
āĻœāĻ¨ā§āĻ¯ (;;) {
len = sizeof(struct sockaddr_storage);
numRead = recvfrom(sfd, buf, BUF_SIZE, 0, (struct sockaddr *) &claddr, &len);

āĻ¯āĻĻāĻŋ (āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž == -1)
errExit("recvfrom");
āĻ¯āĻĻāĻŋ (sendto(sfd, buf, numRead, 0, (struct sockaddr *) &claddr, len)
!=āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž āĻĒāĻ āĻŋāĻ¤)
syslog(LOG_WARNING, "%s (%s) āĻāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ§ā§āĻŦāĻ¨āĻŋāĻ¤ āĻ•āĻ°āĻ¤ā§‡ āĻ¤ā§āĻ°ā§āĻŸāĻŋ",
inetAddressStr((struct sockaddr *) &claddr, len,
addrStr, IS_ADDR_STR_LEN),
strerror(errno));
}
}
_____________________________________________________________________ āĻ¸āĻ•ā§‡āĻŸ/id_echo_sv.c

āĻ†āĻŽāĻ°āĻž āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĒāĻ°ā§€āĻ•ā§āĻˇāĻž āĻ•āĻ°āĻ¤ā§‡ 56.3 āĻ¤āĻžāĻ˛āĻŋāĻ•āĻžāĻ­ā§āĻ•ā§āĻ¤ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°āĻŋāĨ¤ āĻāĻŸāĻŋ āĻŦāĻŋāĻ­āĻžāĻ— 55.12-āĻ āĻŦāĻŋāĻ•āĻļāĻŋāĻ¤ āĻ‡āĻ¨ā§āĻŸāĻžāĻ°āĻ¨ā§‡āĻŸ āĻĄā§‹āĻŽā§‡āĻ‡āĻ¨ āĻ¸āĻ•ā§‡āĻŸ āĻ˛āĻžāĻ‡āĻŦā§āĻ°ā§‡āĻ°āĻŋāĻ“ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻ•āĻ°ā§‡āĨ¤ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĒā§āĻ°ā§‹āĻ—ā§āĻ°āĻžāĻŽ āĻ¨ā§‡āĻŸāĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻ• āĻšā§‹āĻ¸ā§āĻŸā§‡āĻ° āĻ¨āĻžāĻŽ āĻ¨ā§‡āĻ¯āĻŧ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ā§‡āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ…āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤āĨ¤ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻ•āĻŸāĻŋ āĻ˛ā§āĻĒā§‡ āĻĒā§āĻ°āĻŦā§‡āĻļ āĻ•āĻ°ā§‡ āĻ¯ā§‡āĻ–āĻžāĻ¨ā§‡ āĻāĻŸāĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻĒā§āĻ°āĻ¤āĻŋāĻŸāĻŋ āĻŦāĻžāĻ•ā§€ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸāĻ•ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ āĻāĻŦāĻ‚ āĻ¤āĻžāĻ°āĻĒāĻ° āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽāĻ—ā§āĻ˛āĻŋ āĻĒāĻĄāĻŧā§‡ āĻāĻŦāĻ‚ āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°ā§‡āĨ¤

āĻ¤āĻžāĻ˛āĻŋāĻ•āĻž 56.3. āĻ‡āĻ•ā§‹ āĻ‡āĻ‰āĻĄāĻŋāĻĒāĻŋ āĻĒāĻ°āĻŋāĻˇā§‡āĻŦāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ

# "id_echo.h" āĻ…āĻ¨ā§āĻ¤āĻ°ā§āĻ­ā§āĻ•ā§āĻ¤ āĻ•āĻ°ā§āĻ¨

āĻ•ā§‹āĻ¨ int
āĻĒā§āĻ°āĻ§āĻžāĻ¨ (int argc, char *argv[])
{
int sfd,j;
size_tlen;
ssize_t numRead;
charbuf[BUF_SIZE];

āĻ¯āĻĻāĻŋ (argc < 2 || strcmp(argv[1], "--help") == 0)
usageErr("%s host msgâ€Ļn", argv[0]);

/* āĻĒā§āĻ°āĻĨāĻŽ āĻ•āĻŽāĻžāĻ¨ā§āĻĄ āĻ˛āĻžāĻ‡āĻ¨ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸā§‡āĻ° āĻ‰āĻĒāĻ° āĻ­āĻŋāĻ¤ā§āĻ¤āĻŋ āĻ•āĻ°ā§‡ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ āĻŋāĻ•āĻžāĻ¨āĻž āĻ¤ā§ˆāĻ°āĻŋ āĻ•āĻ°ā§āĻ¨ */
sfd = inetConnect(argv[1], SERVICE, SOCK_DGRAM);
āĻ¯āĻĻāĻŋ (sfd == -1)
āĻŽāĻžāĻ°āĻžāĻ¤ā§āĻŽāĻ• ("āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻ¸āĻ•ā§‡āĻŸā§‡āĻ° āĻ¸āĻžāĻĨā§‡ āĻ¸āĻ‚āĻ¯ā§‹āĻ— āĻ•āĻ°āĻž āĻ¯āĻžāĻ¯āĻŧāĻ¨āĻŋ");

/* āĻŦāĻžāĻ•ā§€ āĻ†āĻ°ā§āĻ—ā§āĻŽā§‡āĻ¨ā§āĻŸāĻ—ā§āĻ˛āĻŋ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°ā§‡ āĻ†āĻ˛āĻžāĻĻāĻž āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§‡ āĻĒāĻžāĻ āĻžāĻ¨ */
āĻœāĻ¨ā§āĻ¯ (j = 2; j < argc; j++) {
len = strlen(argv[j]);
āĻ¯āĻĻāĻŋ (āĻ˛ā§‡āĻ–ā§āĻ¨(sfd, argv[j], len) != len)
āĻŽāĻžāĻ°āĻžāĻ¤ā§āĻŽāĻ• ("āĻ†āĻ‚āĻļāĻŋāĻ•/āĻŦāĻŋāĻĢāĻ˛ āĻ˛ā§‡āĻ–āĻž");

numRead = read(sfd, buf, BUF_SIZE);
āĻ¯āĻĻāĻŋ (āĻ¸āĻ‚āĻ–ā§āĻ¯āĻž == -1)
errExit("āĻĒāĻĄāĻŧā§āĻ¨");
printf("[%ld āĻŦāĻžāĻ‡āĻŸ] %.*sn", (āĻĻā§€āĻ°ā§āĻ˜) numRead, (int) numRead, buf);
}
āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ (EXIT_SUCCESS);
}
_____________________________________________________________________ āĻ¸āĻ•ā§‡āĻŸ/id_echo_cl.c

āĻ†āĻŽāĻ°āĻž āĻ¯āĻ–āĻ¨ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻāĻŦāĻ‚ āĻĻā§āĻŸāĻŋ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ‡āĻ¨āĻ¸ā§āĻŸā§āĻ¯āĻžāĻ¨ā§āĻ¸ āĻļā§āĻ°ā§ āĻ•āĻ°āĻŦ āĻ¤āĻ–āĻ¨ āĻ†āĻŽāĻ°āĻž āĻ•ā§€ āĻĻā§‡āĻ–āĻ¤ā§‡ āĻĒāĻžāĻŦ āĻ¤āĻžāĻ° āĻāĻ•āĻŸāĻŋ āĻ‰āĻĻāĻžāĻšāĻ°āĻŖ āĻ¨āĻŋāĻšā§‡ āĻĻā§‡āĻ“āĻ¯āĻŧāĻž āĻšāĻ˛:

$ su // āĻāĻ•āĻŸāĻŋ āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŋāĻ¤ āĻĒā§‹āĻ°ā§āĻŸā§‡ āĻ†āĻŦāĻĻā§āĻ§ āĻšāĻ“āĻ¯āĻŧāĻžāĻ° āĻœāĻ¨ā§āĻ¯ āĻŦāĻŋāĻļā§‡āĻˇāĻžāĻ§āĻŋāĻ•āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§‹āĻœāĻ¨ā§ˇ
āĻĒāĻžāĻ¸āĻ“āĻ¯āĻŧāĻžāĻ°ā§āĻĄ:
# ./id_echo_sv // āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ°āĻŸāĻŋ āĻŦā§āĻ¯āĻžāĻ•āĻ—ā§āĻ°āĻžāĻ‰āĻ¨ā§āĻĄā§‡ āĻ¯āĻžāĻ¯āĻŧ
# āĻĒā§āĻ°āĻ¸ā§āĻĨāĻžāĻ¨ āĻ•āĻ°ā§āĻ¨ // āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•ā§‡āĻ° āĻ…āĻ§āĻŋāĻ•āĻžāĻ° āĻ¤ā§āĻ¯āĻžāĻ— āĻ•āĻ°ā§āĻ¨
$ ./id_echo_cl localhost hello world // āĻāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻĻā§āĻŸāĻŋ āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ
[ā§Ģ āĻŦāĻžāĻ‡āĻŸ] āĻšā§āĻ¯āĻžāĻ˛ā§‹ // āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻ¸āĻžāĻ°ā§āĻ­āĻžāĻ° āĻĨā§‡āĻ•ā§‡ āĻĒā§āĻ°āĻžāĻĒā§āĻ¤ āĻĒā§āĻ°āĻ¤āĻŋāĻ•ā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻ†āĻ‰āĻŸāĻĒā§āĻŸ āĻ•āĻ°ā§‡
[ā§Ģ āĻŦāĻžāĻ‡āĻŸ] āĻŦāĻŋāĻļā§āĻŦ
$ ./id_echo_cl localhost āĻŦāĻŋāĻĻāĻžāĻ¯āĻŧ // āĻāĻ‡ āĻ•ā§āĻ˛āĻžāĻ¯āĻŧā§‡āĻ¨ā§āĻŸ āĻāĻ•āĻŸāĻŋ āĻĄā§‡āĻŸāĻžāĻ—ā§āĻ°āĻžāĻŽ āĻĒāĻžāĻ āĻžāĻ¯āĻŧ
[7 āĻŦāĻžāĻ‡āĻŸ] āĻŦāĻŋāĻĻāĻžāĻ¯āĻŧ

āĻ†āĻŽāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ•ā§‡ āĻāĻ•āĻŸāĻŋ āĻ†āĻ¨āĻ¨ā§āĻĻāĻĻāĻžāĻ¯āĻŧāĻ• āĻĒāĻĄāĻŧāĻž āĻ•āĻžāĻŽāĻ¨āĻž āĻ•āĻ°āĻŋ)

āĻ‰āĻ¤ā§āĻ¸: linux.org.ru