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

在C程序里和shell通信

一般我们调用shell脚本都用system()来实现,然后发现sytem返回值不好控制而且转换麻烦(还要右移4位即/256),于是我用popen来获取shell的返回值。果然在Unix世界里面,通道就是连结各个方面的桥梁啊!
代码例子如下:
#include<stdio.h>
#include<stdlib.h>
#include<sys/wait.h>
int main (int argc, char *argv[])
{
  char szline[256];
  FILE *fp;
  if (argc != 2)
    {
      printf ("usage: %s command\n", argv[0]);
      return 0;
    }
  if ((fp = popen (argv[1], "r")) == NULL)
    {
      printf ("the command %s not exist\n", argv[1]);
      return 0;
    }
  while (fgets (szline, sizeof (szline) - 1, fp) != NULL)
    {
      printf ("frome command:%s", szline);
    }
  pclose (fp);
  return 0;
}
PS:奇怪的是我用如下函数:
char* get_cmd_result(char* cmd)
{
    FILE *fp;
    char result[256];
    memset (result, 0,sizeof(result));
    if((fp=popen(cmd,"r"))==NULL)
    {
        printf("the command %s not exist\n",cmd);
        pclose(fp);
        return 0;
    }
    while(fgets(result,sizeof(result)-1,fp)!=NULL)
    {
#ifdef __DEBUG__
        g_print("get result is %s\n", result);
#endif
    }
    pclose(fp);
    return result;
}
在debian sid下就没问题,在Ubuntu10.04上调用该函数就没法返回的正确值,但在g该函数里result是正确的,这个就不是该文讨论的问题了。


相关文档:

s3c2440基于linux的button和led字符设备驱动

先是内核驱动程序:
#include <linux/module.h>//具体的头文件位置为/opt/FriendlyARM/mini2440/linux-2.6.29/include/linux/*.h
#include <linux/kernel.h>
#include <linux/fs.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/poll.h>
#include <l ......

LINUX C 定时器

【实现功能】:Linux下的C编程:编写一个程序(库),实现定时器(计时器)的功能,它能为用户提供在同一进程中多次使用的定时器。这里要求用信号来实现。
【解题思路】:编写一个结构体Timer代表一个计时器,然后再定义Timer类型的数组myTimer[N],用来保存我们设置的定时器;再定义函数setTimer()生成计时器,并将生成 ......

LINUX C 时间操作

  1.时间表示
    在程序当中,我们经常要输出系统当前的时间,比如我们使用date命令的输出结果.这个时候我们可以使用下面两个函数:
#include <sys/time.h>
time_t time(time_t *tloc);
char *ctime(const time_t *clock);
    time函数返回从1970年1月1日0 ......

ArcSDE C APi的C#调用

选两个比较有代表性的函数
首先下载安装sdk,将其中的sde.dll,pe.dll和sg.dll拷贝过来
使用如下的代码,指定dll后直接调用其中的函数,
/// <summary>
/// Sets the value for a small integer column.
/// </summary>
[DllImport(".\\sde91.dll", SetLastError = true, ......

C运行时库(解析mainCRTStartup)

1.概论
  运行时库是程序在运行时所需要的库文件,通常运行时库是以LIB或DLL形式提供的。C运行时库诞生于20世纪70年代,当时的程序世界还很单纯,应用程序都是单线程的,多任务或多线程机制在此时还属于新观念。所以这个j时期的C运行时库都是单线程的。
  随着操作系统多线程技术的发展,最初的C运行时库无法满足程序 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号