Linux FIFO´úÂëÎÊÌâ - Linux/UnixÉçÇø / ³ÌÐò¿ª·¢Çø
/*speak.c*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#define FIFO_NAME "american_maid"
int main(void)
{
char s[300];
int num, fd;
mknod(FIFO_NAME, S_IFIFO | 0666, 0);
printf("waiting for readers...\n");
fd = open(FIFO_NAME, O_WRONLY);
printf("got a reader--type some stuff\n");
while (gets(s), !feof(stdin)) {
if ((num = write(fd, s, strlen(s))) == -1)
perror("write");
else
printf("speak: wrote %d bytes\n", num);
}
return 0;
}
/*tick.c*/
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
#define FIFO_NAME "american_maid"
int main(void)
{
char s[300];
int num, fd;
mknod(FIFO_NAME, S_IFIFO | 0666, 0);
printf("waiting for writers...\n");
fd = open(FIFO_NAME, O_RDONLY);
printf("got a writer\n");
do {
if ((num = read(fd, s, 300)) == -1)
perror("read");
else {
s[num] = '\0';
printf("tick: read %d bytes: \"%s\"\n&
Ïà¹ØÎÊ´ð£º
´ó¼ÒºÃ£¬ÎÒÏÖÔÚÕýÔÚѧϰlinuxϵͳ£¬Åöµ½µãÎÊÌâÏëÇëÎÊ´ó¼Ò£¬Ï£Íûǰ±²Äܹ»Ö¸½Ì¡£
ÔÚlinuxÖÐΪʲôÎÒÓÃshutdown -r now ÃüÁîÀ´ÖØÆôϵͳûÓÐÓÃÄØ£¬¶ørebootÃüÁî¾Í¿ÉÒÔ¡£
ÁíÍâÎÒÒ²ÊÔ¹ý#shutdown -r now ºÍ
shutdowµÈÃü ......
ÔÚLinuxÉÏÖ´ÐÐrenameº¯Êýʧ°Ü£¬·µ»ØµÄ´íÎóÂëerrnoÊÇ2£¬ÕâÊÇÓÉÓÚʲôÔÒòµ¼ÖµĴíÎó°¡£¬ÊÇÔÚRedHatµÄ»úÆ÷ÉÏ
ÓÃperrorÊÔÊÔ¡¢¡¢¿´¿´Êä³öµÄ´íÎó×Ö·û´®ÊÇʲô¾ÍÇå³þÁË¡¢¡¢
ÒòΪÊDz¿Êðµ½ÏÖÍøµÄ³ÌÐò²»ÄÜËæ±ã¸Ä´úÂë£¬Ò ......
×òÌìΪÁ˽â¾öwinÓëlinuxµÄÂÒÂëÎÊÌ⣬ÔÚ/etcµÄsysconfig/i18nÀïÃæÌí¼ÓÁËÖ§³ÖÖÐÎĵĴúÂ룬½á¹û±ä³ÉÖÐÎĺó×ÀÃæÖ»ÄÜÏÔʾ±³¾°ÁË£¬ÏÖÔÚ¼¸ºõÖ»ÄÜÓÃÖն˺ÍÉÏÍøÁË£¬Îļþ¼Ð¶¼ÎÞ·¨Õý³£ÏÔʾ£¨¿´²»µ½ÀïÃæµÄ¶«Î÷£©£¬ÎÒûÓб¸·Ýϵͳ ......
ÎÒÓà pthread_create ´´½¨Ò»¸öỊ̈߳¬»ñµÃÏØ³ÇµÄid;
idÊÇÈ«¾Ö±äÁ¿£¬ÎÒÏëÖÐÆäËûº¯ÊýÖÐÏû³ýÕâ¸öº¯Êý£¬ÇëÎÊÓ¦¸ÃÔõô×ö£¿
×îºÃÁгöÀý×Ó£¬Ð»Ð»¡£
û¿´Ã÷°×°¡....
void main()
{
pthread_t id;
_create(); //´´½¨Ï ......