int main(int argc, char *argv[])
{
char say1[] = "hello write\n\0";
char say2[] = "hello printf\n\0";
close(STDOUT_FILENO);
write(0, say1, strlen(say1));
printf("%s", say2);
return 0;
}
int dup2(int oldfd, int newfd);
1)关闭newfd;
2)复制oldfd到newfd,即newfd 指向 oldfd
3)newfd使用原来的描述符。
int main(int argc, char *argv[])
{
int fd = open("/home/long/fd/file.txt",O_WRONLY);
printf("fd = %d \t OUT = %d\n", fd, STDOUT_FILENO);
int stat = dup2(fd, STDOUT_FILENO);
char str[128] = {0};
sprintf(str,"dup2 = %d \n",stat);
write(2, str, strlen(str));
close(fd);
execl("/usr/bin/uptime", "uptime", 0);
return 0;
}
[size=large]
这里涉及程序的资源表、资源共享
[/size]