快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

c语言锁文件函数 c语言加锁保护代码

C语言如何判断文件是否可读写

这个需要对文件加锁才能,可以用fcntl函数实现

成都创新互联专注于洮南企业网站建设,响应式网站建设,成都商城网站开发。洮南网站建设公司,为洮南等地区提供建站服务。全流程按需定制,专业设计,全程项目跟踪,成都创新互联专业和态度为您提供的服务

int lock(const char * filepath )

{

int fd = 0;

struct flock flock;

memset( flock, 0, sizeof(flock) );

fd = open( filepath, O_RDWR,S_IRUSR|S_IWUSR );

if ( fd 0 )

{

printf("open error!\n");

return ( -1 );

}

flock.l_type = F_WRLCK;

flock.l_whence = SEEK_SET;

flock.l_start = 100000;

flock.l_len = 0;

if ( fcntl( fd, F_SETLK, flock ) ) //加锁,如果失败则等待10秒

{

printf("cannot set lock\n");

printf("the process will retry after 10 seconds\n");

sleep(10); //不同版本的sleep单位可能不一样,有的是秒有的是毫秒,你自己看着改

if ( fcntl( fd, F_SETLK, flock ) ) //加锁,如果失败则退出

return( -1 );

}

return( 0 );

}

后面的你懂吧

在linux中用C语言实现死锁

设置状态变量lock=0,在占用资源的函数中,设置lock=1;并在处理结束后设lock=0.

比如:

bool lock=0;

int scan()

{

while(lock!=0); //循环检测,直到资源释放才执行下面的语句

lock=1;//锁定资源

... //具体的执行扫描的语句

lock=1; //释放资源

return 0;

}

这个方法容易实现,但是占用CPU,假定其他线程正在占用扫描仪,那么这个线程就会在自己的时间片内不停的执行while语句直到对方释放扫描仪。由此造成了浪费。

现在流行的做法是通过中断信号来做,那是一本书的内容,建议看linux内核编程方面的书。

用C语言给文件加密解密,详细简单的代码;;;;用c打开一txt文件,怎么写?【新手初学】

#includestdio.h

#includestdlib.h

#includeconio.h

#includestring.h

void dofile(char *in_fname,char *pwd,char out_file)

{

FILE *fp1,*fp2;

register char ch;

int j=0;

int j0=0;

fp1=fopen(in_fname,"rb");

if(fp1==NULL)

{

printf("cannot open in-file.\n");

exit(1); //如果不能打开要加密的文件,便退出程序、

}

fp2=fopen(out_file,"wb");

if(fp2==NULL)

{

printf("cannot open or create out-file.\n");

exit(1); //如果不能建立加密后的文件,便退出

}

while(pwd[++j0]);

ch=fgetc(fp1); //加密算法开始

while(!feof(fp1))

{

fputc(ch^pwd[jj0?j=0:j++],fp2); //异或后写入fp2文件

ch=fgetc(fp1);

}

fclose(fp1);

fclose(fp2);

}

void main(int argc,char *argv[])

{

char in_fname[30];

char out_fname[30];

char pwd[8];

if(argc!=4)

{

printf("\nIn-fname:\n");

gets(in_fname);

printf("Password:\n");

gets(pwd);

printf("Out-file:\n");

gets(out_fname);

dofile(in_fname,pwd,out_fname);

}

else

{

strcpy(in_fname,argv[1]);

strcpy(pwd,argv[2]);

strcpy(out_fname,argv[3]);

dofile(in_fname,pwd,out_fname);

}

}

C语言和shell语言给文件加锁

一般情况下是做不到的!

从文件本身角度是无法实现加锁的!

只能从应用程序角度去加锁,如:在C程序中进行加锁和锁检查,当然,可以不是真正意义上的锁(否则shell无法识别)。 同时,在shell进程中进行加锁的锁检查!


本文题目:c语言锁文件函数 c语言加锁保护代码
链接地址:http://6mz.cn/article/ddgpijg.html

其他资讯