易截截图软件、单文件、免安装、纯绿色、仅160KB

linux c语言中的chmod函数

chmod中的mode_t参数,如何动态的传入值,例如 我要传入0777或0444,但我输入的是字符串 怎么转化为8进制
每个模式均预定义有宏,又因为其实可选分支有限,你可以判断输入得字符串,使用swicth之类得办法,给一临时变量赋予不同得值调用chmod。

使用atoi函数将字符串转换为整数,再将这个整数转换为八进制数即可,然后当实参传入

学习

C/C++ code:

/* 功 能:改变文件访问权限 */
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>

int main(int argc, char ** argv)
{
int mode; // 权限
int mode_u; // 所有者的权限
int mode_g; // 所属组的权限
int mode_o; // 其他用户的权限
char *path;

/*检查参数个数的合法性*/
if(argc < 3) {
printf("%s <mode num> <target file>\n",argv[0]);
exit(0);
}

/*获取命令行参数*/
mode = atoi(argv[1]);
if (mode > 777 || mode < 0) {
printf("mode num error!\n");
exit(0);
}
mode_u = mode / 100;
mode_g = (mode - (mode_u*100)) / 10;
mode_o = mode - (mode_u*100) - (mode_g*10);
mode = (mode_u * 8 * 8) + (mode_g * 8) + mode_o; // 八进制转换
path = argv[2];

if ( chmod(path, mode) == -1) {
perror("chmod error");
exit(1);
}

return 0;
}



/


相关问答:

为什么C写DLL文件C、PB能调用VB不能调用

为什么C写的DLL文件C、PB能调用VB不能调用?
VB里为什么有的DLL直接通过引用可以使用?有的需要通过declare申明外部函数?这些DLL有什么差别?

1、为什么PB能通过DECLARE声明而VB不行?
2、如果这个dll中的 ......

C 程序问题 (二) - C/C++ / C语言

问一下:
#include <stdio.h>
int main()
{
  char x, y, z;
  int i;
  int a[16];
  for(i=0; i<=16; i++)
  {
  a[i] = 0;
  ......

求解ANSI/ISO C中的一句话

ANSI/ISO C 标准这样描述:

在上一个和下一个序列点之间, 一个对象所保存的值至多只能被表

达式的计算修改一次。而且前一个值只能用于决定将要保存的值。

实在不理解这句话,请大家一起说说?? ......

C/S程序在线自动更新问题,谢谢求教!

目前遇到的问题是:
存放在远程服务器端c/s程序一有更新,如何做到客户端立即响应弹出有最新升级的提示窗口。
本来有点思路:采用WCF+windowns服务+定时器的方式也能实现,但是每台客户端机子每隔都去访问一下远程 ......

探求出c++、c的知识

      现在有关c++、c的书籍,那些书是较深层次的?请介绍几本?


#include <iostream>
using namespace std;
int funhion(int x, int y )
{
int m,n;
    ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号