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

linux常用c函数 文件权限控制篇

access(判断是否具有存取文件的权限)
  相关函数  stat,open,chmod,chown,setuid,setgid
  表头文件  #include<unistd.h>
  定义函数  int access(const char * pathname,int mode);
  函数说明  access()会检查是否可以读/写某一已存在的文件。参数mode有几种情况组合,R_OK,W_OK,X_OK
和F_OK。R_OK,W_OK与X_OK用来检查文件是否具有读取、写入和执行的权限。F_OK则是用来判断该文件是否存在。由于access()只作
权限的核查,并不理会文件形态或文件内容,因此,如果一目录表示为“可写入”,表示可以在该目录中建立新文件等操作,而非意味此目录可以被当做文件处理。
例如,你会发现DOS的文件都具有“可执行”权限,但用execve()执行时则会失败。
  返回值  若所有欲查核的权限都通过了检查则返回0值,表示成功,只要有一权限被禁止则返回-1。
  错误代码  EACCESS 参数pathname 所指定的文件不符合所要求测试的权限。
  EROFS 欲测试写入权限的文件存在于只读文件系统内。
  EFAULT 参数pathname指针超出可存取内存空间。
  EINVAL 参数mode 不正确。
  ENAMETOOLONG 参数pathname太长。
  ENOTDIR 参数pathname为一目录。
  ENOMEM 核心内存不足
  ELOOP 参数pathname有过多符号连接问题。
  EIO I/O 存取错误。
  附加说明 
使用access()作用户认证方面的判断要特别小心,例如在access()后再做open()的空文件可能会造成系统安全上的问题。
  范例  /* 判断是否允许读取/etc/passwd */
  #include<unistd.h>
  int main()
  {
  if (access(“/etc/passwd”,R_OK) = =0)
  printf(“/etc/passwd can be read\n”);
  }
  执行  /etc/passwd can be read
  alphasort(依字母顺序排序目录结构)
  相关函数  scandir,qsort
  表头文件  #include<dirent.h>
  定义函数  int alphasort(const struct dirent **a,const struct dirent
**b);
  函数说明 
alphasort()为scandir()最后调用qsort()函数时传给qsort()作为判断的函数,详细说明请参考scandir()及
qsort()。
  返回值  参考qsort()。
  范例  /* 读取/目录下所有的目录结构,并依字母顺序排列*/
  main()
  {
  struct d


相关文档:

Linux下如何查看CPU信息, 包括位数和多核信息


# uname -a
Linux euis1 2.6.9-55.ELsmp #1 SMP Fri Apr 20 17:03:35 EDT 2007 i686 i686 i386 GNU/Linux
(查看当前操作系统内核信息)
# cat /etc/issue | grep Linux
Red Hat Enterprise Linux AS release 4 (Nahant Update 5)
(查看当前操作系统发行版信息)
# cat /proc/cpuinfo | grep name | cut -f2 -d: ......

linux共享内存使用实例

三个文件,一个头文件,一个读,一个写,用同一个key值申请共享内存。
//shm.h
#ifndef _SHM_COM_H
#define _SHM_COM_H 1
#define TEXT_SZ 2048
struct shared_use_at
{
    int written_by_you;
    char some_text[TEXT_SZ];
};
struct kts
{
 int power;
 int mod ......

linux下C语言多线程编程实例

学东西,往往实例才是最让人感兴趣的,老是学基础理论,不动手,感觉没有成就感,呵呵。
   下面先来一个实例。我们通过创建两个线程来实现对一个数的递加。
或许这个实例没有实际运用的价值,但是稍微改动一下,我们就可以用到其他地方去拉。
下面是我们的代码:
/*thread_example.c : c multiple thread p ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号