小编Jes*_*ica的帖子

PHP目录中特定文件的列表

以下代码将列出目录中的所有文件

<?php
if ($handle = opendir('.')) {
    while (false !== ($file = readdir($handle)))
    {
        if (($file != ".") 
         && ($file != ".."))
        {
            $thelist .= '<LI><a href="'.$file.'">'.$file.'</a>';
        }
    }

    closedir($handle);
}
?>

<P>List of files:</p>
<UL>
<P><?=$thelist?></p>
</UL>
Run Code Online (Sandbox Code Playgroud)

虽然这是非常简单的代码,但它完成了这项工作.

我现在正在寻找一种方法来列出最后只有.xml(或.XML)的文件,我该怎么做?

php directory file list

46
推荐指数
4
解决办法
13万
查看次数

使用标准C在Mac OS X中获取操作系统版本

我试图在C中以编程方式获取Mac OS X的版本.在搜索了一段时间之后我尝试了这段代码:

#include <CoreServices/CoreServices.h>

int GetOS()
{
    SInt32 majorVersion,minorVersion,bugFixVersion;

    Gestalt(gestaltSystemVersionMajor, &majorVersion);
    Gestalt(gestaltSystemVersionMinor, &minorVersion);
    Gestalt(gestaltSystemVersionBugFix, &bugFixVersion);

    printf("Running on Mac OS X %d.%d.%d\n",majorVersion,minorVersion,bugFixVersion);    

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

XCode返回LD错误:

Undefined symbols for architecture x86_64: "_Gestalt", referenced from: _GetOS in main.o

我错过了什么?你怎么做到这一点?

我也发现了这个片段

[[NSProcessInfo processInfo] operatingSystemVersionString]
Run Code Online (Sandbox Code Playgroud)

但我不知道怎么用C写的.

c macos

18
推荐指数
1
解决办法
5448
查看次数

在C中以编程方式检测Linux中的桌面环境

我试图检测我是否在Gnome或KDE桌面环境中运行.

我知道我可以通过ps -aux进行检查并且使用gnome或KDE进行检查但这并不好:1)如果我在gnome桌面上但是我加载了KDE库会怎么样?2)我需要从代码中执行它而不使用system()或popen()或其他fork/exec组合.

我可以读取文件或环境.变量或其他.

有任何想法吗?

谢谢,任何帮助表示赞赏.

c linux environment desktop

9
推荐指数
1
解决办法
1827
查看次数

扩展IPv6地址,以便我可以将其打印到stdout

我正在使用getifaddrs()和inet_ntop()来获取系统上的ip地址.当系统设置为IPv6时,返回的地址是缩短版本(使用:: for zeros).有没有办法将该地址扩展为完整地址?

这是我正在使用的代码:

struct ifaddrs *myaddrs, *ifa;
void *in_addr;
char buf[64];

if(getifaddrs(&myaddrs) != 0)
{
    perror("getifaddrs");
    exit(1);
}

for (ifa = myaddrs; ifa != NULL; ifa = ifa->ifa_next)
{
    if (ifa->ifa_addr == NULL)
        continue;
    if (!(ifa->ifa_flags & IFF_UP))
        continue;

    switch (ifa->ifa_addr->sa_family)
    {
        case AF_INET:
        {
            struct sockaddr_in *s4 = (struct sockaddr_in *)ifa->ifa_addr;
            in_addr = &s4->sin_addr;
            break;
        }

        case AF_INET6:
        {
            struct sockaddr_in6 *s6 = (struct sockaddr_in6 *)ifa->ifa_addr;
            in_addr = &s6->sin6_addr;
            break;
        }

        default:
            continue;
    }

    if (!inet_ntop(ifa->ifa_addr->sa_family, in_addr, buf, …
Run Code Online (Sandbox Code Playgroud)

c linux ipv6

9
推荐指数
1
解决办法
1万
查看次数

应用程序的系统范围热键

我有一个带有3个按钮的简单窗口,我正在尝试添加一个系统范围的热键,这样我就可以"按下"这些按钮而无需切换到该应用程序,按下按钮然后回到我正在做的事情.

Cmd+ Shift+ 1按下按钮1,Cmd+ Shift+ 2按下按钮2等.

有没有办法在Cocoa中实现这一点(使用Objective-C)?谢谢,代码很受赞赏,因为我是Cocoa的新手.

macos cocoa button

9
推荐指数
1
解决办法
3216
查看次数

在C中用于Windows的fnmatch?

是否有适用于Windows的fnmatch版本?我试图在C中具有相同的功能(基本上在文件名的命令行中使用*),而不必调用FindFirst()等.

代码表示赞赏.

编辑:我需要从命令行接受通配符的文件名,例如*.txt,并能够打开每个.txt文件.

正如我所说,我不想使用FindFirst,FindNext.谢谢

c windows

8
推荐指数
1
解决办法
4198
查看次数

一个简单的C XML解析器

这就是我需要做的:我需要读取XML格式的文档并从中提取元素及其值,例如在以下代码中:

<user name="Mark">
    <param name="Age" value="21"/>
    <param name="Country" value="NL"/>
</user>
Run Code Online (Sandbox Code Playgroud)

我需要提取:name = Mark,Age = 21和Country = NL.

直到今天我一直在手动进行这种解析,这很痛苦.

现在我不关心文件是"正确的XML"还是所有那些,我不关心DTD或其他标准的XML要求.我只需要阅读并解析这些值.

任何人都知道(lib eXpat除外)一个lib来做这个或代码来做到这一点?谢谢!

枷锁

编辑:

是的,我忘了提到这个平台:Windows和Linux.在普通的C中,而不是C++

c xml

7
推荐指数
3
解决办法
3万
查看次数

将void指针(数据)转换为函数指针

我知道之前有人问过,但我在这里看到的情况都不像这个.我在运行时导入一些API函数,这些函数的一般声明如下:

// Masks for UnmapViewOfFile and MapViewOfFile
typedef BOOL (WINAPI *MyUnmapViewOfFile)(LPCVOID);
typedef LPVOID (WINAPI *MyMapViewOfFile)(HANDLE, DWORD, DWORD, DWORD, SIZE_T);

// Declarations
MyUnmapViewOfFile LoadedUnmapViewOfFile;
MyMapViewOfFile LoadedMapViewOfFile;
Run Code Online (Sandbox Code Playgroud)

然后我调用一个通用的"加载"函数,它调用GetProcAddress以从正确的DLL获取导出函数的地址.该地址以无效**返回.此void**是泛型加载中的参数之一,如:

int GenericLoad(char* lib, void** Address, char* TheFunctionToLoad)
Run Code Online (Sandbox Code Playgroud)

我会称之为这个功能:

void *Address;
GenericLoad("kernel32.dll", &Address, "UnmapViewOfFile");
LoadedUnmapViewOfFile = (MyUnmapViewOfFile) Address;
Run Code Online (Sandbox Code Playgroud)

或类似的东西.现在,编译器当然抱怨尝试将数据void*转换为函数指针.那怎么办?

我已经阅读了无数的网站和各种令人讨厌的演员阵容,所以如果你在解释中添加代码,我会很感激.

谢谢Jess

c windows pointers

6
推荐指数
1
解决办法
3251
查看次数

C中链表的总大小

好吧......我对CS数据结构的介绍是如此生疏,我需要在这里提出这个问题.

我有一个链表,其结构是:

struct Data_Struct {
    char *Name;
    char *Task;
    char *Pos;
    struct Data_Struct *Next;
};
typedef struct Data_Struct MyData;
Run Code Online (Sandbox Code Playgroud)

现在,在我的应用程序的某个时刻,我用数据填充了列表.

问题是,如何获得存储在那里的数据的总大小?有多少个字符?就像是

sizeof(MyData);
Run Code Online (Sandbox Code Playgroud)

这将返回列表中存储的信息的大小.

代码表示赞赏.

谢谢!

编辑:不幸的是这不是功课.我在20多年前完成了学业,坦率地说,我从来没有在任何事情上使用链接列表.我只是不记得了.我正在做的是迭代列表并获取每个元素的strlen()并将其保持在全局大小但我想知道是否有更好的方法.

和NO,我不需要链接的大小(节点数),我只想知道那里存储了多少个字符.

谢谢

c linked-list

6
推荐指数
1
解决办法
3万
查看次数

获取用户的国家/地区和键盘语言

为了呈现正确的菜单文本和UI的其他一些方面,我试图获得当前用户的国家和键盘语言.
我知道语言环境(通过env.变量),但我找不到获取这两个信息的方法.

代码在C for Mac OS X中.我可以使用Cocoa API来获取它们但是需要从C调用它们.任何想法?

谢谢!

c macos cocoa

5
推荐指数
1
解决办法
1906
查看次数

获取可用驱动器及其大小的列表

我知道你可以使用GetLogicalDrives()和GetDiskFreeSpaceEx()的组合来获取驱动器及其大小的列表.我一直在使用GetDiskFreeSpaceEx()没有问题但是当我尝试使用GetLogicalDrives()时遇到了一个问题:我不想在将它传递给GetDiskFreeSpaceEx之前检查每个可能的字母以查看它是否存在().

是否有更简单的方法来获取系统上的驱动器(磁盘)列表以及它们的大小?我在Windows上使用C语言.

我想说清楚,我知道使用C#和WMI可能更容易,我对此没有兴趣所以请不要将其作为可能的解决方案发布.如果你想指出如何在C和WMI中完成,那就去吧.没有C++或C#谢谢!(就像上一个问题中所做的那样)

c windows winapi

3
推荐指数
2
解决办法
4769
查看次数

使用sscanf解析两个字符串

我有一个半xml格式的文件,其中包含具有以下格式的行:

<param name="Distance" value="1000Km" />
Run Code Online (Sandbox Code Playgroud)

字符串中的第一个字符通常是TAB或空格.我一直在使用以下方法尝试解析两个字符串(从名称和值):

if(sscanf(lineread, "\t<param name=\"%s\" value=\"%s\" />", name, value) == 1)
{
    //do something
}
Run Code Online (Sandbox Code Playgroud)

名称和值是char*

现在,结果总是一样的:名称得到解析(我需要删除引号),名称总是空的.我究竟做错了什么?

谢谢,代码表示赞赏.

杰西.

c scanf

1
推荐指数
1
解决办法
4082
查看次数

标签 统计

c ×10

macos ×3

windows ×3

cocoa ×2

linux ×2

button ×1

desktop ×1

directory ×1

environment ×1

file ×1

ipv6 ×1

linked-list ×1

list ×1

php ×1

pointers ×1

scanf ×1

winapi ×1

xml ×1