#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>
int main(int argc, const char *argv[])
{
int fd=dup(2);
if(fd==-1)
{
perror("dup");
return 1;
}
int efd=open("./err.txt",O_CREAT | O_WRONLY | O_APPEND,0666);
int fd2=dup2(efd,2);
if(fd2==-1)
{
perror("dup2");
return 1;
}
if(efd==-1)
{
perror("eopen");
return 1;
}
int rfd=open(argv[1], O_RDONLY);
if(rfd==-1)
{
perror("ropen");
return 1;
}
int wfd=open(argv[2], O_CREAT | O_WRONLY | O_TRUNC,0666);
if(wfd==-1)
{
perror("wopen");
return 1;
}
char buf[5000]={0};
while(1)
{
int retrd=read(rfd,buf,5000);
if(retrd==0)
{
fflush(stdout);
break;
}
if(retrd==-1)
{
perror("read");
return 1;
}
int retwr=write(wfd,buf,5000);
if(retwr==-1)
{
perror("write");
return 1;
}
}
int retcw=close(wfd);
if(retcw==-1)
{
perror("close(wfd)");
return 1;
}
int retcr=close(rfd);
if(retcr==-1)
{
perror("close(rfd)");
return 1;
}
int retce=close(efd);
if(retce==-1)
{
perror("close(efd)");
return 1;
}
return 0;
}
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <pthread.h>
#include <semaphore.h>
#include <wait.h>
#include <signal.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <sys/socket.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <semaphore.h>
#include <sys/msg.h>
#include <sys/shm.h>
#include <sys/un.h>
int main(int argc, const char *argv[])
{
struct stat buf={0};
stat(argv[1],&buf);
mode_t mode=buf.st_mode;
if((mode | S_IWUSR)==mode)
{
chmod(argv[1],mode&=~S_IWUSR);
system("ls -lh");
}
else
{
chmod(argv[1],mode|=S_IWUSR);
system("ls -lh");
}
return 0;
}