小编cha*_*m15的帖子

确定文件是否是PHP中的图像的最佳方法是什么?

我有一个人们可以上传文件的服务器.问题是某些文件名被破坏(没有任何扩展名),所以我无法立即确定文件类型.这个问题是两部分:对于有文件名的文件,确定它是否是图像的最佳方法是什么?(只是一个很长的if/else if列表?)其次,对于没有扩展名的文件,我如何确定它们是否是图像?

php file-upload image

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

统计不工作

我正在编写一个文件观察器,并且由于某种原因无法获取文件信息,为什么?


struct stat info;
int fd = open(path, O_EVTONLY);
if (fd <= 0){
    exit(-1);
}
int result = fstat(fd, &info);
if (!result){
    exit(-1); //This happens! Errno says "No such file or directory" but that cant be because open would've failed
}
Run Code Online (Sandbox Code Playgroud)

c c++ macos

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

如何在C++中声明带有填充信息的指针?


extern "C" {
    typedef struct Pair_s {
        char *first;
        char *second;
    } Pair;

    typedef struct PairOfPairs_s {
        Pair *first;
        Pair *second;
    } PairOfPairs;
}

Pair pairs[] = {
    {"foo", "bar"}, //this is fine
    {"bar", "baz"}
}; 

PairOfPairs pops[] = {
    {{"foo", "bar"}, {"bar", "baz"}}, //How can i create an equivalent of this NEATLY
    {&pairs[0], &pairs[1]} //this is not considered neat (imagine trying to read a list of 30 of these)
}; 

Run Code Online (Sandbox Code Playgroud)

我怎样才能实现上面的样式声明语义?

c++

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

如何在处理之后调用父构造函数?

我想在调用父构造函数之前进行一些处理.以下示例说明了为什么我要这样做,尽管为了清楚起见我已经做了一些微不足道的事情.真正的父构造函数正在进行一些渲染,但我们首先尝试解决这个问题.

本质上,当父构造函数调用overriden函数但子项的数据尚未设置时,问题就出现了.我该如何解决?

class BaseClass {

public:
    int myNumber;

    BaseClass(){
        myNumber = 0;
        this->printNumber();
    }

    virtual void printNumber(){
        printf("My number is %d\n", this->myNumber);
    }
}

class ChildClass : BaseClass {

public:
    float childNumber;

    ChildClass(float myNumber) : BaseClass() {
        this->childNumber = myNumber;
    }

    void printNumber(){
        printf("My number is %f\n", this->childNumber);
    }

}

Run Code Online (Sandbox Code Playgroud)

c++

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

为什么我的程序在启动之前崩溃了?

该程序由g ++编译,带有-g标志,-static-libgcc和-static-libstdc ++.没有包含优化标志.出于某种原因,我不能进入主要的.为什么?

$ nm -C test.exe | grep main
006c05b0 T __getmainargs
006b0ad0 T __main
0088d0e8 B __mingw_winmain_hInstance
0088d0e4 B __mingw_winmain_lpCmdLine
0088d0ec B __mingw_winmain_nShowCmd
006ce518 D __native_dllmain_reason
00401180 t __tmainCRTStartup
0088edc8 I _imp____getmainargs
007491c0 r jisx0213_to_ucs_main
00405f0c T main
00401570 T mainCRTStartup
00884010 b mainret
004a3371 T sqlite3_backup_remaining
0078ada0 r uhc_1_2charset_main
0078c440 r uhc_1_2uni_main_page81
007899a0 r uhc_2_2charset_main
0078db00 r uhc_2_2uni_main_pagea1

$ gdb test.exe
GNU gdb (pcx32) 7.3.50.20111127-cvs
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version …

c c++ windows gdb mingw

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

为什么PHP爆炸错误?

这是PHP代码:

var_dump($value);
Run Code Online (Sandbox Code Playgroud)
string(103) "0e0cU\0Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
Run Code Online (Sandbox Code Playgroud)
var_dump(explode(',', $value));
Run Code Online (Sandbox Code Playgroud)
array(1) {
  [0]=>
  string(103) "0e0cU\0Z‚dddd.is.moar.awesome‚A6A32C2074B787893DF506F6F466F5919516C44F3"
}

为什么不在逗号上拆分字符串?

php

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

如何使用C / C ++在OS X中获得分区偏移?

我想使用驱动器序列号+分区偏移量+分区大小来创建自己的卷ID,但是我需要知道如何在OS X上获取分区信息。我(成功地)尝试了以下操作:


int fd;
if ((fd = open("/dev/disk0s1", O_RDONLY|O_NONBLOCK)) >= 0) {
    struct hd_geometry geom;
    if (ioctl(fd, 0x0301, &geom) == 0){ //0x0301 is HDIO_GETGEO
        printf("Index = %u\n", geom.start);
    }
    close(fd);
}
Run Code Online (Sandbox Code Playgroud)

但是,即使是成功的,这是因为作为一个有缺陷的解决指出:hd_geometry.start是一个无符号长,“将不包含在大小的磁盘超过219千兆有意义的价值。” 此外,我相信它需要管理权限,这也是不好的。还有其他方法吗?

c c++ macos

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

如何通过SQL中的LEFT JOIN替换值?

我有一个包含一组翻译的表,我想查询插入的翻译的原始表(如果存在翻译).例如:

CREATE TABLE foo (
  id TEXT,
  key TEXT
);

CREATE TABLE translations (
  key TEXT,
  value TEXT  
);

INSERT INTO foo(id, key) VALUES('1', '1');
INSERT INTO foo(id, key) VALUES('2', '2');
INSERT INTO foo(id, key) VALUES('3', '5');
INSERT INTO foo(id, key) VALUES('4', '6');

INSERT INTO translations(key, value) VALUES('5', '7');
INSERT INTO translations(key, value) VALUES('6', '8');

我想要一个查询来返回表:

1 1
2 2
3 7
4 8

SQLfiddle:http://sqlfiddle.com/#!7/ee8cc

谢谢!

sql sqlite

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

如何从文件 HANDLE 获取到包含目录的 HANDLE?

给定文件的句柄(例如C:\\FolderA\\file.txt),我想要一个函数,它将句柄返回到包含目录(在前面的示例中,它将是一个句柄到C:\\FolderA)。例如:

HANDLE hFile = CreateFileA(
                  "C:\\FolderA\\file.txt",
                  GENERIC_READ,
                  FILE_SHARE_READ,
                  NULL,
                  OPEN_EXISTING,
                  FILE_ATTRIBUTE_NORMAL,
                  NULL);
HANDLE hDirectory = somefunc(hFile);
Run Code Online (Sandbox Code Playgroud)

可能的实现someFunc

HANDLE someFunc(HANDLE h)
{
    char *path = getPath(h);             // "C:\\FolderA\\file.txt"
    char *parent = getParentPath(path);  // "C:\\FolderA"
    HANDLE hFile = CreateFileA(
              parent,
              GENERIC_READ,
              FILE_SHARE_READ,
              NULL,
              OPEN_EXISTING,
              FILE_ATTRIBUTE_NORMAL,
              NULL);
    free(parent);
    free(path);
    return hFile;
}
Run Code Online (Sandbox Code Playgroud)

但是有没有一种方法可以someFuncgetParentPath不查看字符串并删除最后一个目录分隔符之后的所有内容的情况下实现(因为从性能的角度来看这很糟糕)?

c c++ windows file-io winapi

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

如何删除 utf8 字符串的尾随空格而不读取整个字符串以提高性能?

我有一个函数如下:

void utf8_trim_end(char *data, int length){
  int bytecount = 1;
  int idx = length;
  char *current = data;
  for (int i = 0; i < length; i += bytecount){
     if (!iswhitespace(&data[i])){
        idx = i;
     }
     bytecount = utf8_bytecount(&data[i], length-i);
  }
  data[idx] = 0;
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,为了确保我们查看多字节字符的开头,我们从头开始并迭代。这可行,但对于长字符串来说速度很慢。我想知道是否有一种可接受的方法从最后开始并从那里向后工作?(另外,不想找图书馆,想自己做)

c performance

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

标签 统计

c++ ×6

c ×5

macos ×2

php ×2

windows ×2

file-io ×1

file-upload ×1

gdb ×1

image ×1

mingw ×1

performance ×1

sql ×1

sqlite ×1

winapi ×1