小编arn*_*app的帖子

使用mmap将文件读取到字符串

我正在尝试使用mmap将文件读取到字符串.

我跟随这个例子:http://www.lemoda.net/c/mmap-example/index.html

我的代码看起来像这样

unsigned char *f;
int size;
int main(int argc, char const *argv[])
{
    struct stat s;
    const char * file_name = argv[1];
    int fd = open (argv[1], O_RDONLY);

    /* Get the size of the file. */
    int status = fstat (fd, & s);
    size = s.st_size;

    f = (char *) mmap (0, size, PROT_READ, 0, fd, 0);
    for (i = 0; i < size; i++) {
        char c;

        c = f[i];
        putchar(c);
    }

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

c file-io mmap file segmentation-fault

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

Python:为什么线程函数比非线程慢

您好我正在尝试计算前10000个素数.

我正在做第一个非线程,然后将计算分为1到5000和5001到10000.我期望线程的使用使它显着更快,但输出是这样的:

    --------Results--------
Non threaded Duration:  0.012244000000000005 seconds
Threaded Duration:  0.012839000000000017 seconds
Run Code Online (Sandbox Code Playgroud)

实际上没有什么大不同,除了螺纹功能甚至有点慢.

怎么了?

这是我的代码:

import math
from threading import Thread

def nonThreaded():
    primeNtoM(1,10000)


def threaded():
    t1 = Thread(target=primeNtoM, args=(1,5000))
    t2 = Thread(target=primeNtoM, args=(5001,10000))
    t1.start()
    t2.start()
    t1.join()
    t2.join()


def is_prime(n):
    if n % 2 == 0 and n > 2: 
        return False
    for i in range(3, int(math.sqrt(n)) + 1, 2):
        if n % i == 0:
            return False
    return True

def primeNtoM(n,m):
    L = list()
    if (n > m):
        print("n …
Run Code Online (Sandbox Code Playgroud)

python multithreading

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

按钮离开突出显示状态时的调用方法

我想在突出显示按钮时执行操作,并在离开突出显示状态时执行其他操作.有什么建议?

iphone uibutton ios

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

跟踪NSManagedObject的属性更改

我正在寻找一种方法来跟踪NSManagedObject的属性更改.

目前我使用NSNotifactionCenter来查看我的managedobjectcontext的更改:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleDataModelChange:) name:NSManagedObjectContextObjectsDidChangeNotification object:self.managedObjectContext];
Run Code Online (Sandbox Code Playgroud)

它会触发handleDataModelChange Methode,如下所示:

- (void)handleDataModelChange:(NSNotification *)note
{
    NSSet *updatedObjects = [[note userInfo] objectForKey:NSUpdatedObjectsKey];

    if (updatedObjects.count > 0) {
        for (NSManagedObject *obj in updatedObjects.allObjects) {
            NSLog(@"Object updated: %@ with values:",obj.entity.name);
            NSDictionary *theAttributes = [self getAllAttributesOf:obj];
            for (NSString *attributeName in theAttributes) {
                NSLog(@"Name: %@ : %@",attributeName,[obj valueForKey:attributeName]);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

如果对象发生更改,则会记录该对象的新属性.如何获得获取旧属性值的方法?

core-data nsmanagedobject nsmanagedobjectcontext ios

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

为CLPlacemark获取正确的缩放区域

我正在MKLocalSearch搜索某些地方,例如城市或城市街道,以将其显示在MKMapView

我这样显示地标

let loc = placemark.location! //CLLocation of CLPlacemark
var mapRegion = MKCoordinateRegion()
mapRegion.center.longitude = loc.coordinate.longitude
mapRegion.center.latitude = loc.coordinate.latitude
mapRegion.span.latitudeDelta = 0.03 // I choose 0.03 by trying
mapRegion.span.longitudeDelta = 0.03
mapView.setRegion(mapRegion, animated: true)
Run Code Online (Sandbox Code Playgroud)

当地标是城市时,此方法效果很好,因为它以合理的缩放级别显示较大的区域。但是,当我想显示城市中的特定街道(即CLPlacemarks位置)时,它就很远。

现在,我正在寻找一种根据您的“详细信息”计算正确的跨度的方法CLPlacemark(请注意,您不知道CLPlacemark预付款的类型)

有没有办法做到这一点?

cocoa-touch mapkit ios swift

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

用C编程 - Linux和OSX之间的差异

您好我正在研究C编程.

我想知道C和Linux中的Linux和OSX之间是否存在差异?我知道Windows和Linux/Unix之间有一些(比如获取系统时间戳).是否有任何特定的命令或技术不适用于其中之一?"基本"程序应该同时运行吗?

我知道C不是交叉编译语言,但OSX和Linux都是Unix - 不是吗?

c unix linux macos cross-platform

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

内核:检查进程是否在c中运行的正确方法

我想检查我的pid进程是否从内核扩展运行.

在用户空间中,这很简单:

if (kill(pid, 0) == 0) {
printf("Process %d is running\n", pid);
} else if (errno == ESRCH) {
printf("Process %d is not running\n", pid);
} else {
printf("This shouldn't happen oO\n");
Run Code Online (Sandbox Code Playgroud)

但不知何故,kill()在内核中不可用.有另一种方法可以做到这一点吗?

c linux kernel process linux-kernel

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

线程像非线程一样"慢"

今天我在python中用线程计算素数有一个问题.它几乎和没有线程一样慢(参见问题).

现在我创建了相同的代码,认为使用pthread在C中不存在python问题.

#include <stdio.h>
#include <time.h>
#include <pthread.h>

int isPrime(int number) {
    int i;
    for (i=2; i<number; i++) {
        if (number % i == 0 && i != number) return 0;
    }
    return 1;
}

void calcPrimeNumbersFromNtoM(int n, int m){
    for (int i = n; i <= m; i++) {
        if (isPrime(i)) {
            //printf("%i\n",i);
        }
    }

}

void *calcFirstHalf(){
    calcPrimeNumbersFromNtoM(1,5000);
    return NULL;
}

void *calcSecondHalf(){
    calcPrimeNumbersFromNtoM(5001,10000);
    return NULL;
}

void calcThreadedPrimenumbers(){
    pthread_t t1, t2;
    pthread_create(&t1, NULL, calcFirstHalf, NULL); …
Run Code Online (Sandbox Code Playgroud)

c theory algorithm multithreading pthreads

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

Swift:将字符串拆分成句子

我想知道如何将包含多个句子的字符串拆分为句子数组。

我知道 split 函数,但 split by"."并不适合所有情况。

这个答案中是否有类似的内容

iphone ios swift

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

Android:ListView有奇怪的边距

我正在尝试使用操作栏,浮动按钮和ListView.

当我ListView在Android Studio中添加它时,它总是给各方带来很大的利润.

无论我在布局代码中做了什么改变,它都没有帮助它总是这样: 在此输入图像描述

我的布局代码如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="appenzeller.de.glimpse.MainActivity">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/mainList" />

    <LinearLayout
        android:id="@+id/ly_bar_bottom"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:gravity="right"
        android:orientation="horizontal">
        <android.support.design.widget.FloatingActionButton
            android:id="@+id/button_addc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="bottom|end"
            android:layout_margin="28dp"
            android:src="@drawable/ic_add_white_18dp"
            android:onClick="addNewEntry"
            app:borderWidth="0dp"
            app:elevation="6dp"
            app:pressedTranslationZ="12dp" />
    </LinearLayout>

</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

android listview android-layout

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

UIButton状态更改时执行操作

我有一个UIButton,当它被触发时执行一个Action.我这样做

[inButton addTarget:self action:@selector(cardTouchDown) forControlEvents:UIControlEventTouchDown];
Run Code Online (Sandbox Code Playgroud)

现在我想在按钮离开此状态时执行另一个操作.有什么建议怎么做?

iphone uibutton ios uicontrolevents

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

mprotect始终返回无效参数

我正在尝试使用protect修改.text段中的值以给我写入权限:

 int pageSize = sysconf(_SC_PAGE_SIZE);

 int *toModify = (int *)(foo+5);
 if (mprotect(toModify, pageSize, PROT_WRITE) < 0 ) {
      perror("mprotect failed with error:");
      return -1;
  }
  *toModify = 5;
  printf("Modify :%i",foo());
Run Code Online (Sandbox Code Playgroud)

mprotect永远不会工作.它总是返回一个mprotect failed with error:: Invalid argument错误.

foo是一个返回函数后存储5个字节的int的方法(这就是foo + 5的原因)

c unix linux memory mprotect

0
推荐指数
2
解决办法
2788
查看次数