2019-05-03 Fred Gleason <fredg@paravelsystems.com>

* Cleaned up a compiler warning for rdimport(1).
This commit is contained in:
Fred Gleason
2019-05-03 16:59:32 -04:00
parent aa59fbb0f5
commit 128a977d56
4 changed files with 89 additions and 5 deletions

View File

@@ -740,7 +740,7 @@ int RDSetTimeLength(const QString &str)
return res;
}
/*
bool RDCopy(const QString &srcfile,const QString &destfile)
{
int src_fd;
@@ -777,6 +777,81 @@ bool RDCopy(const QString &srcfile,const QString &destfile)
close(dest_fd);
return true;
}
*/
bool RDCopy(const QString &srcfile,const QString &destfile)
{
int src_fd;
int dest_fd;
if((src_fd=open((const char *)srcfile,O_RDONLY))<0) {
return false;
}
if((dest_fd=open((const char *)destfile,O_WRONLY|O_CREAT,S_IWUSR))<0) {
close(src_fd);
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(src_fd);
close(dest_fd);
return ret;
}
bool RDCopy(const QString &srcfile,int dest_fd)
{
int src_fd;
if((src_fd=open((const char *)srcfile,O_RDONLY))<0) {
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(src_fd);
return ret;
}
bool RDCopy(int src_fd,const QString &destfile)
{
int dest_fd;
if((dest_fd=open((const char *)destfile,O_WRONLY|O_CREAT,S_IWUSR))<0) {
return false;
}
bool ret=RDCopy(src_fd,dest_fd);
close(dest_fd);
return ret;
}
bool RDCopy(int src_fd,int dest_fd)
{
struct stat src_stat;
struct stat dest_stat;
char *buf=NULL;
int n;
if(fstat(src_fd,&src_stat)<0) {
return false;
}
if(fstat(dest_fd,&dest_stat)<0) {
return false;
}
if(fchmod(dest_fd,src_stat.st_mode)<0) {
return false;
}
buf=(char *)malloc(dest_stat.st_blksize);
while((n=read(src_fd,buf,dest_stat.st_blksize))==dest_stat.st_blksize) {
write(dest_fd,buf,dest_stat.st_blksize);
}
write(dest_fd,buf,n);
free(buf);
return true;
}
bool RDWritePid(const QString &dirname,const QString &filename,int owner,

View File

@@ -84,6 +84,9 @@ bool RDIsSqlNull(const QString &table,const QString &name,unsigned test,
QString RDGetTimeLength(int mseconds,bool leadzero=false,bool tenths=true);
int RDSetTimeLength(const QString &string);
bool RDCopy(const QString &srcfile,const QString &destfile);
bool RDCopy(const QString &srcfile,int dest_fd);
bool RDCopy(int src_fd,const QString &destfile);
bool RDCopy(int src_fd,int dest_fd);
bool RDWritePid(const QString &dirname,const QString &filename,int owner=-1,
int group=-1);
void RDDeletePid(const QString &dirname,const QString &filename);