我正在尝试使用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) 您好我正在尝试计算前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) 我正在寻找一种方法来跟踪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)
如果对象发生更改,则会记录该对象的新属性.如何获得获取旧属性值的方法?
我正在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预付款的类型)
有没有办法做到这一点?
您好我正在研究C编程.
我想知道C和Linux中的Linux和OSX之间是否存在差异?我知道Windows和Linux/Unix之间有一些(比如获取系统时间戳).是否有任何特定的命令或技术不适用于其中之一?"基本"程序应该同时运行吗?
我知道C不是交叉编译语言,但OSX和Linux都是Unix - 不是吗?
我想检查我的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()在内核中不可用.有另一种方法可以做到这一点吗?
今天我在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) 我正在尝试使用操作栏,浮动按钮和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)
我究竟做错了什么?
我有一个UIButton,当它被触发时执行一个Action.我这样做
[inButton addTarget:self action:@selector(cardTouchDown) forControlEvents:UIControlEventTouchDown];
Run Code Online (Sandbox Code Playgroud)
现在我想在按钮离开此状态时执行另一个操作.有什么建议怎么做?
我正在尝试使用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的原因)