发新话题
打印

此贴为灌水

此贴为灌水

我们团队现在又不够活跃了啊,大家要多多参与撒

TOP

#include<unistd.h>
#include<sys/types.h>
#include<sys/stat.h>
#include<fcntl.h>
#include<stdlib.h>
#include<stdio.h>
#include<errno.h>                                                                                
#define BUFFER_SIZE 3072
int main(int argc,char **argv)
{
int file1,file2;
        int bytes_read,bytes_write;
        char buffer[BUFFER_SIZE];
        char *ptr;
        if(argc!=3)
        {
                fprintf(stderr,"Usage:%s fromfile tofile\n\a",argv[0]);
                exit(1);
        }
        if((file1=open(argv[1],O_RDONLY))==-1)
        {
                printf("%s,Error!");
        {
                printf("%s,Error!");
        }
        if((file2=open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1)
        {
                printf("%s,Error!");
        }
        int start=time((time_t *)NULL);
        printf("time start:%d\n",start);
        while(bytes_read=read(file1,buffer,BUFFER_SIZE))
        {
                                                                                
                if((bytes_read==-1)&&(errno!=EINTR)) break;
                else if(bytes_read>0)
                {
                        ptr=buffer;
                        while(bytes_write=write(file2,ptr,bytes_read))
                        {
                                                                                
                             if((bytes_write==-1)&&(errno!=EINTR))break;
                                else if(bytes_write==bytes_read) break;
                                else if(bytes_write>0)
                                {
                                else if(bytes_write>0)
                                {
                                        ptr+=bytes_write;
                                        bytes_read-=bytes_write;
                                }
                        }
                        if(bytes_write==-1)break;
                }
        }
        close(file1);
        close(file2);
return 0;
}
让背幸都滚蛋吧

TOP

#include<stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <stdlib.h>
#include <errno.h>
#define BUFFER_SIZE 1024
int main(int argc,char **argv)
{

int newpid;
void caculat();
void filetofile();

if((newpid = fork()) == -1)
printf(" fork failed!!!");
else if (newpid ==0)
caculat();
else
filetofile(argc,**argv);
}

void caculat() //caculate 50!
{
int i, k = 150!=1;
for(i = 50; i >=1; i--)
{
k = k * i;
}

printf("50!= %d\n", k);
exit(17);
}

void filetofile(int argc,char **argv)//file to file
{
int from_fd,to_fd;
int bytes_read,bytes_write;
char buffer[BUFFER_SIZE];
char *ptr;
if(argc!=3)
{
fprintf(stderr,"Usage:%s fromfile tofile\n\a",argv[0]);
exit(1);
}
if((from_fd=open(argv[1],O_RDONLY))==-1)
{
printf("error");
  }
if((to_fd=open(argv[2],O_WRONLY|O_CREAT,S_IRUSR|S_IWUSR))==-1)
{
printf("error");
//出错处理
}
int start=time((time_t *)NULL);
printf("time start:%d\n",start);
while(bytes_read=read(from_fd,buffer,BUFFER_SIZE))
{

if((bytes_read==-1)&&(errno!=EINTR)) break;
else if(bytes_read>0)
{
ptr=buffer;
while(bytes_write=write(to_fd,ptr,BUFFER_SIZE))
{

if((bytes_write==-1)&&(errno!=EINTR))break;
else if(bytes_write==bytes_read) break;
else if(bytes_write>0)
{
ptr+=bytes_write;
bytes_read-=bytes_write;
}
}
  if(bytes_write==-1)break;
}
}
int endtime = time((time_t *) NULL);
int excutetime = endtime - start;
printf("excutetime = %d",excutetime);
close(from_fd);
close(to_fd);
}
让背幸都滚蛋吧

TOP

sss

asdfsdsdfdfdfssdf
附件: 您所在的用户组无法下载或查看附件

TOP

#include <sys/sem.h>
#include <sys/ipc.h>

#define SEGSIZE 1024
#define READTIME 1
union semun
{
int val;
struct semid_ds *buf;
unsigned short *array;
} arg;
//生成信号量
int sem_creat(key_t key)
{
union semun sem;
int semid;
sem.val = 0;
semid = semget(key,1,IPC_CREAT|0666);
if (-1 == semid)
  {
  printf("create semaphore error\n");
  exit(-1);
  }
semctl(semid,0,SETVAL,sem);
return semid;
}

//p
int p(int semid)
{
struct sembuf sops={0,+1,IPC_NOWAIT};
return (semop(semid,&sops,1));
}
//v
int v(int semid)
{
struct sembuf sops={0,-1,IPC_NOWAIT};
return (semop(semid,&sops,1));
}
int main()
{
key_t key;
int shmid,semid;
char *shm;
char msg[7] = "-data-";
char i;
struct semid_ds buf;

key = ftok("/",0);
shmid = shmget(key,SEGSIZE,IPC_CREAT|0604);
if (-1 == shmid)
  {
  printf(" create shared memory error\n");
  return -1;
  }
shm = (char *)shmat(shmid,0,0);
if (-1 == (int)shm)
  {
  printf(" attach shared memory error\n");
  return -1;
  }
semid = sem_creat(key);
for (i = 0;i <= 3;i++)
  {
  sleep(1);
  p(semid);
  sleep(READTIME);
  msg[5] = '0' + i;
  memcpy(shm,msg,sizeof(msg));
  sleep(5);
  v(semid);
  }
shmdt(shm);
shmctl(shmid,IPC_RMID,&buf);
del_sem(semid);
return 0;
}
//gcc -o shm shm.c -g

TOP

我来裸一盘了~为了我的6000帖~没法啊~

TOP

发新话题